gpt4 book ai didi

objective-c - 无符号字符数组到十六进制表示 NSString

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:35 25 4
gpt4 key购买 nike

我有一个 unsigned char 数组,我想将它转换为十六进制 NSString,目前我通过以下方式进行:

unsigned char result[16];
// Fill the array

NSString *myHexString = [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
]];

是否有 更好的方法来 实现此目的的内置函数?

最佳答案

这个怎么样?

NSMutableString *hex = [NSMutableString string];
for (int i=0; i<16; i++)
[hex appendFormat:@"%02x", result[i]];

// And if you insist on having the hex in an immutable string:
NSString *immutableHex = [NSString stringWithString:hex];

您还可以将代码变成类别以保持美观:

@implementation NSString (Hex)

+ (NSString*) hexStringWithData: (unsigned char*) data ofLength: (NSUInteger) len
{
NSMutableString *tmp = [NSMutableString string];
for (NSUInteger i=0; i<len; i++)
[tmp appendFormat:@"%02x", data[i]];
return [NSString stringWithString:tmp];
}

@end

然后你的代码归结为:

unsigned char result[16] = {…};
NSString *hexString = [NSString hexStringWithData:result ofLength:16];

我认为这已经很不错了。

关于objective-c - 无符号字符数组到十六进制表示 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5977650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com