在python中使用struct pack

用户名

我有一个整数形式的数字,我需要将其转换为4个字节并将其存储在列表中。我正在尝试在python中使用struct模块,但无法使其工作:

struct.pack("i",34);

当我期望要打印的二进制等效项时,它将返回0。预期产量:

[0x00 0x00 0x00 0x22]

但是struct.pack返回空。我究竟做错了什么?

马丁·彼得斯(Martijn Pieters)

输出以字节字符串形式返回,Python会在可能的情况下将这些字符串打印为ASCII字符:

>>> import struct
>>> struct.pack("i", 34)
b'"\x00\x00\x00'

请注意开头的引号,即ASCII码点34:

>>> ord('"')
34
>>> hex(ord('"'))
'0x22'
>>> struct.pack("i", 34)[0]
34

请注意,在Python 3中,bytes类型是整数序列,每个值的范围都在0到255之间,因此在上一个示例中建立索引会为显示为的字节生成整数值"

有关Python字节字符串的更多信息,请参见python字符串之前的ab前缀是什么意思?

如果您希望顺序颠倒,则可能需要指示字节顺序

>>> struct.pack(">i",34)
b'\x00\x00\x00"'

其中>表示大尾数对齐方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python:来自struct pack()的意外行为

来自分类Dev

python-bytes()与struct.pack()

来自分类Dev

Python的struct.pack到底做什么?

来自分类Dev

python-bytes()vs struct.pack()

来自分类Dev

使用带有负数的struct.pack

来自分类Dev

struct.pack的结果很奇怪?

来自分类Dev

Python 3:获取与Python 2 struct.pack输出匹配的struct.pack输出

来自分类Dev

如何使用JFrame.pack()?

来自分类Dev

过度使用Pragma Pack(1)

来自分类Dev

使用MPI_PACK()的优势

来自分类Dev

使用正确的pack:// URI格式

来自分类Dev

为什么混合使用python struct.pack中的类型会比需要的空间更多?

来自分类Dev

等价于Python的C#中的“ struct.pack / unpack”吗?

来自分类Dev

编写与Python版本无关的代码:struct.pack

来自分类Dev

Python 3 struct.pack()打印奇怪的字符

来自分类Dev

Python struct.pack和解压缩

来自分类Dev

Python 3 struct.pack()打印奇怪的字符

来自分类Dev

将python转换为java:struct.pack('h',int)

来自分类Dev

做Python的C ++代码struct.pack('> I',val)

来自分类Dev

C 相当于 Python 的 struct.pack 吗?

来自分类Dev

使用`struct.pack`将数据写入文件时出错

来自分类Dev

如何使用struct.pack格式构造字节?

来自分类Dev

如何使用struct.pack作为字符串列表

来自分类Dev

如何使用struct.pack打包一个变量?

来自分类Dev

struct.pack()失败,且int> 127

来自分类Dev

#pragma pack与-fpack-struct for Intel C

来自分类Dev

C#中等效的Struct.Pack

来自分类Dev

用cython比struct.pack更快

来自分类Dev

C#中等效的Struct.Pack