1. 位运算符概述
位运算符是对二进制数进行操作的运算符,位运算符通常用于底层数据处理和优化,比如计算机网络、加密算法、嵌入式系统等。
在Python中,有六种位运算符:
按位与(&)
按位或(|)
按位异或(^)
按位取反(~)
左移(<<)
右移(>>)
2. 按位与(&)
2.1 定义
按位与是指对两个二进制数的每一位进行操作,如果两个二进制数的同一位都为1,则输出1,否则输出0。
2.2 代码示例
以下代码将输出2,因为二进制数 110 是 6,二进制数 101 是 5,按位与得到的二进制数 100 是 4。
a = 6
b = 5
c = a & b
print(c)
3. 按位或(|)
3.1 定义
按位或是指对两个二进制数的每一位进行操作,如果两个二进制数的同一位中有一个为1,则输出1,否则输出0。
3.2 代码示例
以下代码将输出7,因为二进制数 110 是 6,二进制数 101 是 5,按位或得到的二进制数 111 是 7。
a = 6
b = 5
c = a | b
print(c)
4. 按位异或(^)
4.1 定义
按位异或是指对两个二进制数的每一位进行操作,如果两个二进制数的同一位不同,则输出1,否则输出0。
4.2 代码示例
以下代码将输出3,因为二进制数 110 是 6,二进制数 101 是 5,按位异或得到的二进制数 011 是 3。
a = 6
b = 5
c = a ^ b
print(c)
5. 按位取反(~)
5.1 定义
按位取反是指将一个二进制数的每一位进行操作,将0变为1,将1变为0。
5.2 代码示例
以下代码将输出-7,因为它将二进制数 110 取反后得到的二进制数 001,再将其转换为十进制数 -7。
a = 6
c = ~a
print(c)
6. 左移(<<)
6.1 定义
左移是指将一个二进制数向左移动指定的位数,新的二进制数右侧用0填充。
6.2 代码示例
以下代码将输出24,因为二进制数 110 向左移动两位后得到的二进制数 11000 是 24。
a = 6
c = a << 2
print(c)
7. 右移(>>)
7.1 定义
右移是指将一个二进制数向右移动指定的位数,新的二进制数左侧用0或1填充(取决于原来的数的符号位,符号位为0时左侧用0填充,符号位为1时左侧用1填充)。
7.2 代码示例
以下代码将输出1,因为二进制数 110 向右移动两位后得到的二进制数 1 是 1。
a = 6
c = a >> 2
print(c)