python - 我如何在 python 中将 int16 打包成字节

标签 python int byte

<分区>

我想在 python 中将 int 打包成字节字符串,如下所示:将 29 打包到 '\x1d\x00' 中。 我该怎么做?

最佳答案

使用 struct模块:

>>> import struct
>>> struct.pack( "<H", 29 )
'\x1d\x00'

参见 documentation有关格式字符的说明。以下是相关部分的摘要:

字符'H'表示未签名的短。

'<'是指定大小、字节顺序和对齐方式的前缀字符。

就我们的目的而言,大小是指一个无符号短整型实际有多少位。使用“标准尺寸”,用 '<' 中的任何一个指定, '=' , '!' , 或 '>' ,这是 16 位。对于“@”(默认设置),大小是实现定义的(尽管对于无符号短整数,它仍然很可能为 16 位)。

字节顺序是指最重要的字节在字节序列中排在最前面还是最后。最重要的优先称为“big-endian”,并用 '>' 指定。 ; struct.pack( ">H", 29)'\x00\x1d' .最不重要的优先称为“小端”,并且是您的示例中显示的内容 - 29编码为 '\x1d\x00' .

(对齐与我们的目的无关,因为我们只打包一个元素。)

关于python - 我如何在 python 中将 int16 打包成字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19955281/

相关文章:

c# - 在 Encoding.ASCII.GetString() 之后删除不可打印的值

java - 如何在 Java 中将一个字节附加到字符串?

python - 将txt文件解析为2个csv文件

python - python 中的矩阵矩阵

python - 请求设置 DEFAULT_INDEX_TABLESPACE

Javascript - 字节数组长?

python - Pandas 兼容 : 'import pandas' gives AttributeError: module 'pandas' has no attribute 'compat'

python - 如何使用python删除txt中的内容并保留txt中的某些内容

c - 递归数函数返回意外值

python - 如何取一个数字并找到它的字母位置python