Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想将任何值(可以是负数或正数)转换为十六进制。我目前的方法就是这样做的。
本例中的读取值为 4003。
workingline = stringdb.readline().split(";") print hex(int(workingline[0]))
这返回
0xfa3
它应该是:
0xa30f0000
(用零和倒置的十六进制填充)如果值为负,则应为:
0xFEFFFFFF
值为-2。
我认为在这种情况下填充没有帮助。
谢谢!
你想要的struct模块:
struct
>>> struct.pack("<I", 4003).encode('hex') 'a30f0000'
对于 -2,你需要做一些其他的工作:
>>> struct.pack("<I", -2 + 2**32).encode('hex') 'feffffff'
为任何值执行此操作的方法是:
struct.pack("<I", (value + 2**32) % 2**32).encode('hex')