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

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

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) —

推荐阅读:
百度AI生态的建立 给创业公司带来了什么好处?  创业项目营销效果不佳 只因没做好这几件事  AI把英语系新生吓退学?别急,我们从来都是那只懒蚂蚁  创业初期该做什么?首先你需要避开的这5大坑!  2018世界人工智能大会开幕,它给创业者带来了哪些思路?  创业寒冬下 初创公司如何才可以打破C轮死魔咒?  为什么企业找不到合适的互联网营销负责人?  知识焦虑遇冷后 知识付费的下一个风口究竟在哪里?  2018秋北京松松兄弟线下聚会干货分享  赌徒谬误:究竟谁在交易所玩合约? 
评论列表
添加评论