二进制位移:为什么左移3位不去掉,右移3位要去掉右面3位

来源:2-12 位运算符

慕仔3324259

2019-06-14 15:06:58

#00111100
#00111100000=480
c = a << 3
print("a << 3:",c)
#00111100
#00000111=7
c = a >> 3
print("a >> 3:",c)

写回答

1回答

时间,

2019-06-14

同学,你好。左移和右移的运算规则是不同的。

<<左移运算规则:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。Python3中int类型的长度理论支持无限大的数字,几乎不存在左移时高位舍弃的情况。

>>右移运算规则:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位,正数补0,负数补1。

例:

http://img.mukewang.com/climg/5d034ff10001a18004190199.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

0

0 学习 · 8160 问题

查看课程