gpt4 book ai didi

objective-c - NSString(十六进制)到字节

转载 作者:太空狗 更新时间:2023-10-30 03:13:53 26 4
gpt4 key购买 nike

Objective-C 中是否有将十六进制字符串转换为字节的方法?例如 @"1156FFCD3430AA22"unsigned char 数组 {0x11, 0x56, 0xFF, ...}

最佳答案

我能想到的最快的 NSString 类别实现(一些示例的组合):

- (NSData *)dataFromHexString {
const char *chars = [self UTF8String];
int i = 0, len = self.length;

NSMutableData *data = [NSMutableData dataWithCapacity:len / 2];
char byteChars[3] = {'\0','\0','\0'};
unsigned long wholeByte;

while (i < len) {
byteChars[0] = chars[i++];
byteChars[1] = chars[i++];
wholeByte = strtoul(byteChars, NULL, 16);
[data appendBytes:&wholeByte length:1];
}

return data;
}

它比 wookay 的解决方案快将近 8 倍。 NSScanner 相当慢。

关于objective-c - NSString(十六进制)到字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2501033/

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