8位十六进制字符串到有符号整数

时间:2014-08-26 13:04:50

标签: objective-c hex nsscanner

我有一个8位十六进制值,如:“FB”( - 5)。现在我需要这个十六进制的有符号整数值。 NSScanner在这个地方不起作用,因为你需要一个4字节的十六进制值来使它变为负数。在我开始一些操作之前,也许有人知道更好的方法吗?

1 个答案:

答案 0 :(得分:3)

类型转换并不安全,但您确实需要它。

NSString *tempNumber = @"FB";
NSScanner *scanner = [NSScanner scannerWithString:tempNumber];
unsigned int temp;
[scanner scanHexInt:&temp];
int actualInt = (char)temp; //why char because you have 8 bit integer
NSLog(@"%@:%d:%d",tempNumber, temp, actualInt);

控制台输出:FB:251:-5