Python直接操作二进制数据主要通过以下方式实现:
一、二进制数转换与位运算
- `bin()`:将整数转换为二进制字符串(如 `bin(10)` 返回 `'0b1010'`)
- `int()`:将二进制字符串转换为整数(如 `int('0b1010', 2)` 返回 `10`)
- `hex()`:将整数转换为十六进制字符串(如 `hex(10)` 返回 `'0xa'`)
位运算符
- 支持与(`&`)、或(`|`)、异或(`^`)、左移(`<<`)、右移(`>>`)等操作,直接对二进制位进行计算。
二、二进制文件读写
文件操作
- 使用 `open()` 函数以二进制模式(`'rb'` 读取,`'wb'` 写入)处理文件,例如:
```python
with open('example.bin', 'wb') as file:
file.write(b'x01x02x03') 写入二进制数据
with open('example.bin', 'rb') as file:
data = file.read() 读取二进制数据
```
结构化数据处理
- 使用 `struct` 模块进行C语言风格的二进制数据打包与解包,例如:
```python
import struct
a = 12.34
bytes = struct.pack('i', a) 将浮点数转换为4字节二进制
a, = struct.unpack('i', bytes) 将二进制转换回浮点数
```
三、其他操作
手动实现二进制转换:
通过位掩码和位移操作处理二进制位,例如:
```python
num = 5 二进制 101
last_bit = num & 1 获取最低位(0或1)
shifted_left = num << 1 左移一位(相当于乘以2)
```
以上方法覆盖了二进制数据的转换、文件操作及位运算等核心需求,可根据具体场景选择使用。