Ram*_*mil 2 python floating-point hex
如何将浮点数转换为基数为16的数字,python中每32位FLP数为8个十六进制数?
例如: input = 1.2717441261e+20 output wanted : 3403244E
如果需要IEEE-754表示的字节值,struct模块可以执行以下操作:
>>> import struct
>>> f = 1.2717441261e+20
>>> struct.pack('f', f)
'\xc9\x9c\xdc`'
Run Code Online (Sandbox Code Playgroud)
这是字节的字符串版本,然后可以将其转换为十六进制值的字符串表示形式:
>>> struct.pack('f', f).encode('hex')
'c99cdc60'
Run Code Online (Sandbox Code Playgroud)
并且,如果您希望它作为十六进制整数,请将其解析为:
>>> s = struct.pack('f', f).encode('hex')
>>> int(s, 16)
3382500448
Run Code Online (Sandbox Code Playgroud)
要将整数显示为十六进制:
>>> hex(int(s, 16))
'0xc99cdc60'
Run Code Online (Sandbox Code Playgroud)
请注意,这与您问题中的十六进制值不匹配 - 如果您的值是您想要的正确值,请更新问题以说明它是如何派生的.
| 归档时间: |
|
| 查看次数: |
5639 次 |
| 最近记录: |