Day7作业

1.使用位运算判断一个数是否是奇数

num=int(input("请输入一个整数:"))
if num & 1 == 0:
 print('%d是偶数' % num)
else:
  print('%d是奇数' % num)

2.表达式0x13&0x17的值是(19)

3.若x=-20,y=3则x&y的结果是(0)

4.表达式 -97 | 120 的运算结果是(-1)

5.在位运算中,操作数每右移一位,其结果相当于(B)

A.操作数乘以2 B.操作数除以2

C.操作数除以4 D.操作数乘以4

6.设x 是一个整数(16位).若要通过x|y使x低8位置1,高8位不变,则y的二进制数是( 0b0000000011111111)

7.总结常用的位运算使用技巧(自己查自己,觉得好用记得住的)

乘以或除以2的幂数

可以用左移<<和右移>>位运算来代替

i << 2, i >> 2

判断一个数的奇偶性

可以用判断二进制最右的一位来代替,最右位是1则是偶数,是0则是奇数。

i & 1

判断一个数是否是2的幂数

x & (x – 1)

将一个数对应的二进制位的最右边的1置为0

x & (x – 1)

将一个数对应的二进制位的最右边的0置为1

x | (x + 1)

将一个数对应的二进制位的最右边的0置为1,其余位全置为0

¬x & (x + 1)

将一个数对应的二进制位的最右边的1置为0,其余位全置为1

¬x | (x – 1)

将一个数对应的二进制位的右尾端连续的1都置为0

x & (x + 1)

将一个数对应的二进制位的右尾端连续的1都置为0,其余位全置为1

¬x | (x + 1)

将一个数对应的二进制位的右尾端连续的0都置为1

x | (x– 1)

将一个数对应的二进制位的右尾端连续的0都置为1,其余位全置为0

¬ x & (x - 1)

将一个数对应的二进制位仅保留最右边的1,其余为全置为0

x & (−(x-1))

你可能感兴趣的:(Day7作业)