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

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

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

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

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

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

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

例:

http://img1.sycdn.imooc.com//climg/5d034ff10001a18004190199.jpg

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

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师