How to Convert Float Number (Fraction) to Hexadecimal in Python?

  • 时间:2020-09-28 16:28:51
  • 分类:网络文摘
  • 阅读:131 次

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 How to Convert Float Number (Fraction) to Hexadecimal in Python? code code library programming languages python

python

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
操场上有一些学生在玩游戏  它的体积和容积一样吗  今年2月用电多少千瓦时  扩建后草坪的底边应是多少米  abc是一个任意三位数  两条直角边的长度是两个质数  小羊小鹿和小熊共同修建一个小水池  wordpress 文章发布出现“定时发布失败”的原因及解决方法  wordpress 数据库表前缀修改方法  wordpress技巧:为标签链接添加rel=”nofollow”属性 
评论列表
添加评论