【问题标题】:Hexadecimal NSString to int Objective C [duplicate]十六进制NSString到int Objective C [重复]
【发布时间】:2017-10-20 22:18:12
【问题描述】:

我目前正在努力弄清楚如何通过 Objective C 将十六进制 NSString 转换为计算的 int。 我正在尝试使用一个可以输入 NSString 的 Objective C 函数,例如。像这样:

NSString *hexString = @"0x0f";

并返回十进制值(作为 int):

int hexValue = 15; (converted)

例如。使用这个网站学习如何获得十六进制的十进制: http://www.binaryhexconverter.com/hex-to-decimal-converter

如果有人能告诉我如何做到这一点,那就太好了:D (在目标 C 中),请尽量使代码尽可能小:)

【问题讨论】:

    标签: objective-c int nsstring hex converter


    【解决方案1】:

    别担心,我想通了。如果其他人有这个问题,那么您可以使用我的答案:

    NSString *hexString = @"0x0f"; // hexString is inputted
    
    unsigned value = 0;
    NSScanner *scanner = [NSScanner scannerWithString:hexString];
    [scanner scanHexInt:&value];
    
    int decimalValue = (int)value; // decimalValue is outputted
    

    希望这对有需要的人有所帮助:)

    【讨论】:

    • 顺便说一句:警告标志的存在是有原因的,您不应该忽略它们,这是非常糟糕的建议scanHexInt: 需要一个指向 unsigned int 的指针,而您正在传递一个指向 long 的指针。幸运的是,您传递了比所需更大的内存块,并且 CPU 的字节序避免了灾难。
    • 好的谢谢,我修好了
    • 如何从 hexString 获取 SIGNED 值(signed int)?
    猜你喜欢
    • 1970-01-01
    • 2017-09-28
    • 2014-02-24
    • 2015-04-15
    • 2011-02-19
    • 2014-04-19
    • 2011-01-30
    • 2011-10-02
    相关资源
    最近更新 更多