从NSString转换为Hex

时间:2015-08-26 09:49:31

标签: objective-c

我是这个领域的新手,我正在努力将NSString转换为Hex并且已经陷入其中。我的String假设是1,FF,F8现在如何将其转换为十六进制数字,如0x01,0x0FF和0x0F8

1 个答案:

答案 0 :(得分:1)

第一步是将包含“1,FF,F8”的字符串拆分为三个包含单独的十六进制值“1”,“FF”,“F8”的字符串。

NSString *hexString = @"1,FF,F8";
NSArray *hexValues = [hexString componentsSeparatedByString:@","];

至于从NSString到hex的转换,我不太确定你到底想要什么。

如果您只想在十六进制值的开头添加“0x0”,您可以这样做:

NSMutableArray *formattedHexValues = [NSMutableArray array];
for(NSString *hexValue in hexValues) {
    [formattedHexValues addObject:[NSString stringWithFormat:@"0x0%@", hexValue]];
}

如果要实际获取十六进制字符串的整数值,请执行以下操作:

for(NSString *hexString in formattedHexValues) {
    unsigned int value;
    [[NSScanner scannerWithString:hexString] scanHexInt:&value];
    NSLog(@"The value is %d", value);
}

在浏览器中键入此内容,因此可能存在一两个语法错误,但通常应该可以正常工作。