How to Convert Float Number (Fraction) to Hexadecimal in Python?
- 时间:2020-09-28 16:28:51
- 分类:网络文摘
- 阅读:114 次
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) —
推荐阅读:Digital Relationships: 5 Tips For Building A Better Veterinary B The 2020 Pandemic Further Boosts Earnings and Influence of Blogg What to Do When Your Blog Gets Too Big for You Alone Minimum Numbers of Function Calls to Make Target Array Harddrives will fail – it is just a matter of when Bruteforce/DFS/Backtracking Algorithm using Javascript to Solve DFS and BFS Algorithm to Find Numbers With Same Consecutive Diff How to Remove Items/Entries with Specific Values from Map/HashMa Find the Real Root of 4^x + 6^x = 9^x Depth First Search (Backtracking) Algorithm to Solve a Sudoku Ga
- 评论列表
-
- 添加评论