如何将浮点十进制转换为32位十六进制值?

时间:2019-06-11 10:43:21

标签: python

我想将浮点十进制转换为32位十六进制值。条件是输出应为8位宽,与输出无关。例如,3e878ee应该显示为03e878ee。

import struct
f = open( 'xyz.txt', 'w' )

infile = open('abc.txt', 'r')
for line in infile:
    lines = infile.readlines()
    for line1 in lines:
        number = float(line1)
        input = number
        buf = struct.pack(">f", input)
        A = (''.join("%x" % ord(c) for c in struct.unpack(">4c", buf) ))
        f.write (str(A) +'\n')
infile.close()

样本输入:

0.0
0.0
0.08213
0.06202
0.0018

示例输出:

0000
0000
0000
3b3126f
3e28394
3cc970f8
3d8331e4
3e456042
3e01cd6
3d3ec02f

输出应为8个零的格式,而不仅仅是4个。 和3e01cd6应该写为03e01cd6。

0 个答案:

没有答案