将双十进制转换为十六进制,二进制和八进制字符串

时间:2012-11-02 20:59:45

标签: objective-c math

是否有自定义或标准库可以与目标c一起使用,将十进制浮点值转换为十六进制,二进制和八进制NSStrings?

我一直在四处寻找,但只能通过使用:double result = (double)strtoll(myHexString.UTF8String, NULL,16)

找到如何将其他方向(从其他所有方向转换为十进制)

2 个答案:

答案 0 :(得分:1)

对于八进制和十六进制,您可以利用以下事实:您可以使用%x和%o说明符格式化十六进制和八进制数字:

NSString* str=[NSString stringWithFormat: @"Hex: %x Octal: %o",14,14];

但这仅适用于积分部分,因此可以使用整数。如果您还需要小数部分,要获得固定点,您需要实现算法,二进制相同。

答案 1 :(得分:0)

为了补充上一个答案,格式说明符%x仅允许处理整数值。 如果您得到的小数值大于最大整数值,则可以使用long long以这种方式转换double值:NSString * hexString = [NSString stringWithFormat:@"%llx", (long long)doubleValue];