
肖老师为您分享以下优质知识
Python二进制运算主要分为数值转换、位运算和二进制数据处理三类,具体方法如下:
一、数值转换
直接使用`0b`前缀表示二进制数,例如`0b1010`表示十进制的10。
内置函数转换
- `bin(number)`:将整数转换为二进制字符串(如`bin(10)`返回`'0b1010'`);
- `int(binary_str, 2)`:将二进制字符串转换为整数(如`int('1010', 2)`返回10);
- `format(number, 'b')`:格式化输出二进制字符串(如`format(10, 'b')`返回`'1010'`)。
二、位运算
Python支持以下位运算符:
按位与(&):
全1为1,否则为0(如`0b101 & 0b110`结果为`0b100`);
有1为1,否则为0(如`0b101 | 0b110`结果为`0b111`);
不同为1,相同为0(如`0b101 ^ 0b110`结果为`0b011`);
0变1,1变0(如`~0b101`结果为`-0b100`);
``(右移)。
三、二进制数据处理
bytes对象操作
- 创建:`bytes([65, 66, 67])`生成二进制数据`b'ABC'`;
- 读写文件:使用`open('test.bin', 'wb')`写入二进制数据,`open('test.bin', 'rb')`读取。
示例代码
```python
数值转换
binary_str = bin(10) '0b1010'
decimal_num = int('1010', 2) 10
formatted_binary = format(10, 'b') '1010'
位运算
a = 5 0b101
b = 3 0b11
print(a & b) 0b100 (128)
print(a | b) 0b111 (7)
print(a ^ b) 0b010 (6)
print(~a) -0b100
二进制数据处理
data = bytes([65, 66, 67])
with open('test.bin', 'wb') as f:
f.write(data)
with open('test.bin', 'rb') as f:
read_data = f.read()
print(read_data) b'ABC'
```
以上方法覆盖了Python中二进制运算的核心操作,可根据需求选择使用。