为了账号安全,请及时绑定邮箱和手机立即绑定

Objective-C将十六进制字符串解析为整数

Objective-C将十六进制字符串解析为整数

iOS
斯蒂芬大帝 2019-12-13 15:10:47
我想知道如何在Objective-C中解析代表数字的十六进制字符串。我愿意同时使用目标方法或基于C的方法。例:#01FFFFAB应该解析为整数:33554347任何帮助,将不胜感激!
查看完整描述

3 回答

?
梦里花落0921

TA贡献1772条经验 获得超5个赞

您可以使用以下行进行转换。它只有一行代码:


NSString *hexString = @"01FFFFAB";

length = (UInt64)strtoull([hexString UTF8String], NULL, 16);

NSLog(@"The required Length is %d", length);

快乐编码!



查看完整回答
反对 回复 2019-12-14
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

Joshua Weinberg的答案基本上是正确的,但是0x在扫描十六进制整数时,前缀是可选的。如果您使用格式的字符串#01FFFFAB,您仍然可以使用 NSScanner,但是您可以跳过第一个字符。


unsigned result = 0;

NSScanner *scanner = [NSScanner scannerWithString:@"#01FFFFAB"];


[scanner setScanLocation:1]; // bypass '#' character

[scanner scanHexInt:&result];



查看完整回答
反对 回复 2019-12-14
?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以为此使用NSScanner


unsigned int outVal;

NSScanner* scanner = [NSScanner scannerWithString:@"0x01FFFFAB"];

[scanner scanHexInt:&outVal];

outVal将包含您要查找的int。0x是可选的。



查看完整回答
反对 回复 2019-12-14
  • 3 回答
  • 0 关注
  • 406 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信