2024-09-30 06:23:46 发布
网友
我想把一个64位的整数转换成长度为16的字节数组。在
例如,我想将687198803487转换为[31 150 61 0 160 0 0 0 0 0 0 0 0 0 0 0]
687198803487
[31 150 61 0 160 0 0 0 0 0 0 0 0 0 0 0]
在Go中,我可以使用
id := make([]byte, 16) binary.LittleEndian.PutUint64(id, uint64(687198803487))
我如何在python2中复制这个呢?在
使用struct.pack和'<Q'来完成此操作。这里<表示little-Endian,Q表示要打包一个无符号long long(8字节)。但是,如果你想把它转换成16个字节,你必须自己填充0(你的输入毕竟只有64位)。在
struct.pack
'<Q'
<
Q
>>> import struct >>> struct.pack('<Q', 687198803487) b'\x1f\x96=\x00\xa0\x00\x00\x00' >>> list(map(int, struct.pack('<Q', 687198803487))) [31, 150, 61, 0, 160, 0, 0, 0] >>>
使用
struct.pack
和'<Q'
来完成此操作。这里<
表示little-Endian,Q
表示要打包一个无符号long long(8字节)。但是,如果你想把它转换成16个字节,你必须自己填充0(你的输入毕竟只有64位)。在相关问题 更多 >
编程相关推荐