1.使用位运算判断一个数是否是奇数
num = int(input('请输入一个数:'))
if num & 1 :
print('%d是奇数' % num)
else:
print('%d是偶数' % num)
请输入一个数:12
12是偶数
2.表达式0x13&0x17的值是(19)
0x13 -->00010011
0x17 -->00010111
00010011 & 00010111 = 00010011
00010011 --> 19
3.若x=-20,y=3则x&y的结果是(0 )
-20 --> 10010100(原码)--> 11101011(反码)--> 11101100(补码)
3 --> 00000011(补码)
11101100 & 00000011 = 00000000 --> 0
4.表达式 -97 | 120 的运算结果是(-1)
-97 --> 11100001(原码) --> 10011111(补码)
120 --> 01111000
10011111 | 01111000 = 11111111(补码)-->10000001(原码)= -1
5.在位运算中,操作数每右移一位,其结果相当于(B)
A.操作数乘以2 B.操作数除以2
C.操作数除以4 D.操作数乘以4
6.设x 是一个整数(16位).若要通过x|y使x低度8位置1,高8位不变,则y的二进制数是(0B11111111 )
7.总结常用的位运算使用技巧(自己查自己,觉得好用记得住的)
1、交换两个数(不借助第三变量)
这种方法可以实现的基础是一个数m与另一个数n异或,再与n异或,得到的结果是m.
不适用临时变量,交换两个数
a = a ^ b
b = b ^ a
a = a ^ b
2.求两个数的平均值
print((m + n) >> 1)