python 16进制 大小端处理
时间: 2023-07-18 20:41:56 浏览: 235
在Python中处理大端和小端字节序很简单。我们可以使用struct模块来转换二进制数据。
举个例子,如果我们有一个16位的整数0x1234,我们想要把它转换为大端字节序的二进制数据,可以使用以下代码:
```python
import struct
n = 0x1234
packed = struct.pack('>H', n)
print(packed)
```
这里,`'>H'`表示大端字节序,`'H'`表示一个16位的无符号整数。输出结果为`b'\x12\x34'`,这是一个字节串,其中`'\x12'`是高位字节,`'\x34'`是低位字节。
如果我们要把它转换为小端字节序的二进制数据,可以使用以下代码:
```python
import struct
n = 0x1234
packed = struct.pack('<H', n)
print(packed)
```
这里,`'<H'`表示小端字节序,输出结果为`b'4\x12'`,其中`'\x12'`是低位字节,`'4'`是高位字节。
如果我们已经有了一个字节串,我们可以使用`struct.unpack()`函数将其解包为一个整数,例如:
```python
import struct
packed = b'\x12\x34'
n = struct.unpack('>H', packed)[0]
print(n)
```
这里,`struct.unpack('>H', packed)`表示把字节串`packed`解包为一个16位的无符号整数,`[0]`表示取第一个元素,输出结果为`4660`,即`0x1234`。如果我们要解包为小端字节序的整数,只需要把`'>H'`改为`'<H'`即可。
阅读全文