Python运算符(5)-位运算符
2020-03-14 本文已影响0人
复苏的兵马俑
Python语言支持以下类型的运算符:
1、算术运算符
2、比较(关系)运算符
3、赋值运算符
4、逻辑运算符
5、位运算符
6、成员运算符
7、身份运算符
8、运算符优先级
5、位运算符
按位运算符是把数字看作二进制来进行计算的。
下表中变量 x 为 60,y 为 13,二进制格式如下:
x = 0011 1100
y = 0000 1101
x & y = 0000 1100
x | y = 0011 1101
x ^ y = 0011 0001
~ x = 1100 0011
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符: 参与运算的两个值,如果两个相应位都为1, 则该位的结果为1,否则为0 |
(x & y) 输出结果 12 二进制解释: 0000 1100 |
| | 按位或运算符: 只要对应的二个二进位有一个为1时, 结果位就为1 |
(x | y) 输出结果 61 二进制解释: 0011 1101 |
^ | 按位异或运算符: 当两对应的二进位相异时, 结果为1 |
(x ^ y) 输出结果 49 二进制解释: 0011 0001 |
~ | 按位取反运算符: 对数据的每个二进制位取反, 即把1变为0,把0变为1 ~x 类似于 -x-1 |
(~x ) 输出结果 -61 二进制解释: 1100 0011 在一个有符号二进制数的补码形式 |
<< | 左移动运算符: 运算数的各二进位全部左移若干位, 由 << 右边的数字指定了移动的位数, 高位丢弃,低位补0 |
x << 2 输出结果 240 二进制解释: 1111 0000 |
>> | 右移动运算符: 把">>"左边的运算数的各二进位全部右移若干位, >> 右边的数字指定了移动的位数 |
x >> 2 输出结果 15 二进制解释: 0000 1111 |
实例代码:
x = int(input('请输入x的值:'))
y = int(input('请输入y的值:'))
print('“{}”的输出结果为:{}'.format('x & y', x & y))
print('“{}”的输出结果为:{}'.format('x | y', x | y))
print('“{}”的输出结果为:{}'.format('x ^ y', x ^ y))
print('“{}”的输出结果为:{}'.format('~ x', ~ x))
print('“{}”的输出结果为:{}'.format('x & 2', x << 2))
print('“{}”的输出结果为:{}'.format('x & 2', x >> 2))
运行结果:
请输入x的值:60 # 60的二进制为0011 1100
请输入y的值:13 # 13的二进制为0000 1101
“x & y”的输出结果为:12 # 12的二进制为0000 1100
“x | y”的输出结果为:61 # 61的二进制为0011 1101
“x ^ y”的输出结果为:49 # 49的二进制为0011 0001
“~ x”的输出结果为:-61 # -61的二进制为1100 0011
“x & 2”的输出结果为:240 # 240的二进制为1111 0000
“x & 2”的输出结果为:15 # 15的二进制为0000 1111