我想将一个32字节(虽然我可能需要其他长度)整数转换为python中的一个字节对象.有一个干净,简单的方法吗?
我猜你需要一个 32 位整数和大尾数法来启动:
>>> from ctypes import c_uint32
>>> l = c_uint32(0x12345678)
>>> bytes(l)
b'xV4\x12'
Run Code Online (Sandbox Code Playgroud)
还有 c_uint8、c_uint16 和 c_uint64。对于较长的整数,您需要使用 divmod(x, 256) 手动制作。
>>> def bytify(v):
... v, r = divmod(v, 256)
... yield r
... if v == 0:
... raise StopIteration
... for r in bytify(v):
... yield r
...
>>> [x for x in bytify(0x12345678)]
[120, 86, 52, 18]
>>> bytes(bytify(0x12345678))
b'xV4\x12
>>> bytes(bytify(0x123456789098765432101234567890987654321))
b'!Ce\x87\t\x89gE#\x01!Ce\x87\t\x89gE#\x01'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8593 次 |
| 最近记录: |