是否有自定义或标准库可以与目标 c 一起使用,将十进制浮点值转换为十六进制、二进制和八进制 NSStrings?
我一直在环顾四周,但只能通过使用以下方法找到如何转换另一个方向(从其他所有方向转换为十进制):double result = (double)strtoll(myHexString.UTF8String, NULL,16)
是否有自定义或标准库可以与目标 c 一起使用,将十进制浮点值转换为十六进制、二进制和八进制 NSStrings?
我一直在环顾四周,但只能通过使用以下方法找到如何转换另一个方向(从其他所有方向转换为十进制):double result = (double)strtoll(myHexString.UTF8String, NULL,16)
至于八进制和十六进制,您可以利用以下事实:您可以使用 %x 和 %o 说明符将数字格式化为十六进制和八进制:
NSString* str=[NSString stringWithFormat: @"Hex: %x Octal: %o",14,14];
但这仅适用于整数部分,因此您可以使用整数。如果您还想要小数部分,则要获得固定点,您需要实现算法,对于二进制也是如此。
为了补充前面的答案,格式说明符 %x 只允许处理整数值。如果你得到一个大于最大整数值的十进制值,你可以使用 long long 通过这种方式转换你的 double 值:NSString * hexString = [NSString stringWithFormat:@"%llx", (long long)doubleValue];