Objective-C 十进制到 Base 16 十六进制转换
Posted
技术标签:
【中文标题】Objective-C 十进制到 Base 16 十六进制转换【英文标题】:Objective-C Decimal to Base 16 Hex conversion 【发布时间】:2011-02-19 21:59:18 【问题描述】:有没有人有一个代码 sn-p 或一个需要很长时间并将其转换为 16 字节十六进制字符串的类?
我希望像这样转换数据
long long decimalRepresentation = 1719886131591410351;
把它变成这个
//Base 16 Hex Output: 17DE435307A07300
%x 运算符不想为我工作
NSLog(@"Hex: %x",decimalRepresentation);
//console : "Hex: 7a072af"
如您所见,这还不算接近。任何帮助都非常感谢!
【问题讨论】:
【参考方案1】:%x
以十六进制表示和sizeof(long long) != sizeof(unsigned)
打印一个无符号整数。参见例如"Data Type Size and Alignment" 在 64 位转换指南中。
使用ll
说明符(即两个小写L)来获得所需的输出:
NSLog(@"%llx", myLongLong);
【讨论】:
谢谢,这很快!我还没有在 iPhone 上尝试过,不知道它是否适用于 iPhone 处理器?printf()
格式指定得很清楚,所以我不希望那里有任何惊喜。
您应该在回答中澄清 %llx 实际上是两个小写的 L,而不是两个数字。我必须复制并粘贴您的答案才能实现这一点。
@Justin:哦,好吧 - 我猜对我来说 "long
-> 小写 L" 现在是硬连线的。以上是关于Objective-C 十进制到 Base 16 十六进制转换的主要内容,如果未能解决你的问题,请参考以下文章