Python运算符

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
上一篇下一篇

猜你喜欢

热点阅读