十六进制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 

希望这有助于任何人谁需要这个:)

+0

BTW:警告标志存在是有原因的,你不应该不理会他们,那**非常糟糕的建议**。 'scanHexInt:'需要一个指向'unsigned int'的指针,并且你正在传递一个指向'long'的指针。幸运的是,您传递的内存大于所需内存,并且CPU的字节顺序避免了灾难。 – CRD

+0

好的thx,我修好了 – Lucasware