在python中将uint64转换为字节数组

2024-09-30 06:23:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个64位的整数转换成长度为16的字节数组。在

例如,我想将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中复制这个呢?在


Tags: idgomake字节整数数组bytebinary
1条回答
网友
1楼 · 发布于 2024-09-30 06:23:46

使用struct.pack'<Q'来完成此操作。这里<表示little-Endian,Q表示要打包一个无符号long long(8字节)。但是,如果你想把它转换成16个字节,你必须自己填充0(你的输入毕竟只有64位)。在

>>> 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]
>>>

相关问题 更多 >

    热门问题