How to Convert Float Number (Fraction) to Hexadecimal in Python?
- 时间:2020-09-28 16:28:51
- 分类:网络文摘
- 阅读:91 次
We known that in Javascript, we can use the toString(16) to convert an integer to its hexadecimal representation. That works even for float numbrs, for example,
1 2 3 4 5 6 | (0.5).toString(16) "0.8" (1.5).toString(16) "1.8" (0.3).toString(16) "0.4ccccccccccccc" |
(0.5).toString(16) "0.8" (1.5).toString(16) "1.8" (0.3).toString(16) "0.4ccccccccccccc"
In python, you can do this using the following function FloatToHex that will print at most (by default) 16 decimal places in hexadecimal form.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import sys def FloatToHex(x, k = 16): if x < 0: sign = "-" x = -x else: sign = "" s = [sign + str(int(x)) + '.'] x -= int(x) for i in range(k): y = int(x * 16) s.append(hex(y)[2:]) x = x * 16 - y return ''.join(s).rstrip('0') if __name__ == "__main__": print(FloatToHex(float(sys.argv[1]))) |
import sys def FloatToHex(x, k = 16): if x < 0: sign = "-" x = -x else: sign = "" s = [sign + str(int(x)) + '.'] x -= int(x) for i in range(k): y = int(x * 16) s.append(hex(y)[2:]) x = x * 16 - y return ''.join(s).rstrip('0') if __name__ == "__main__": print(FloatToHex(float(sys.argv[1])))
Examples:
# python3 FloatToHex.py 0.5 0.8 # python3 FloatToHex.py 0.6 0.99999999999998 # python3 FloatToHex.py 0.3 0.4ccccccccccccc # python3 FloatToHex.py 2.3 2.4cccccccccccc # python3 FloatToHex.py -2.3 -2.4cccccccccccc
The complexity is O(1) if we consider the string manipulation is also O(1) and the hex function in Python runs at O(1) constant.

python
–EOF (The Ultimate Computing & Technology Blog) —
推荐阅读:当生命离开我的时候作文800字 打苍蝇作文100字 描写莲花湖的作文 是冬成就了雪,还是雪美丽了冬 让我们走向海洋作文350字 圣诞节的作文500字 做冰棒作文400字 描写菜地的作文 淡雅素然,是生活最美的格调 花儿不该这么早凋谢——安全在我心中作文650字
- 评论列表
-
- 添加评论