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,
(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.
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.
–EOF (The Ultimate Computing & Technology Blog) —
238 wordsLast Post: 4 Tips You Shouldn't Miss While Creating Your Ideal Website
Next Post: How to Compute the Clumsy Factorials using Iterative Algorithm?
