运算符_位运算

位运算:将数据转成二进制进行计算
这边的位运算符和C中的类似,可以直接将C中的只是转移过来,提高效率,感兴趣的读者可以前往C中的专区查看位运算的规则
4(2)=0000 0100
8(2)=0000 1000
按位与&
4&8(2)=0000 0000

按位或|
4|8(2)=0000 1100

eg:
a,b=4,8
print(a&b)
print(a|b)
output:
0
12

0(2)=0000 0000
12(2)=0000 1100
简易的表示如上所示

左移位运算符<<
高位溢出会舍弃,低位自动补0
4<<1(2)=0000 1000
对于4移动的时候前面的零溢出会扔掉,低位缺一个数字,自动补上零(感觉在负数的情况下好像不能这样解释,C中的高位溢出的规则可能也适用于这边?,符号位还是比较奇怪的)

右移位运算符>>
与左移位是对偶的,低位溢出会舍弃,高位自动补0
4>>1(2)=0000 0010
左移右移在某种情况下可以近似认为是将数字a左移乘上2的k次方(数据没有溢出的情况下),右移是将数字整除2的k次方,这边的2的k次方中的k由移动k位决定
注意位运算是比乘法快的,所以有时候可以借助位运算提高运算效率

posted @ 2022-01-23 15:26  banyanrong  阅读(64)  评论(0)    收藏  举报