十六进制NSString为int目标C目前C
问题描述:
我目前正在努力弄清楚如何通过目标C将十六进制NSString转换为计算int。我想要一个Objective C函数,它将得到一个NSString例如输入。就像这样:十六进制NSString为int目标C目前C
NSString *hexString = @"0x0f";
,并返回十进制值(作为int):
int hexValue = 15; (converted)
如。使用这个网站,了解如何获得十六进制的十进制: http://www.binaryhexconverter.com/hex-to-decimal-converter
如果有人能告诉我如何做到这一点,这将是巨大的感谢:d (在Objective C),并请尽量做一个小的代码尽可能:)
答
不要担心我想通了。如果任何人有这个问题,那么你可以使用我的回答:
NSString *hexString = @"0x0f"; // hexString is inputted
unsigned value = 0;
NSScanner *scanner = [NSScanner scannerWithString:hexString];
[scanner scanHexInt:&value];
int decimalValue = (int)value; // decimalValue is outputted
希望这有助于任何人谁需要这个:)
BTW:警告标志存在是有原因的,你不应该不理会他们,那**非常糟糕的建议**。 'scanHexInt:'需要一个指向'unsigned int'的指针,并且你正在传递一个指向'long'的指针。幸运的是,您传递的内存大于所需内存,并且CPU的字节顺序避免了灾难。 – CRD
好的thx,我修好了 – Lucasware