为了账号安全,请及时绑定邮箱和手机立即绑定

java学习之旅

标签:
Java

说了几个简单的位运算符,接下来看看稍微复杂点的另外三个吧:

<<:

将操作数的二进制码整体左移指定位数,左移之后的空使用‘0’来补充。刚接触这个所谓的“移位操作”,不一定能理解二进制码整体移动指定位数是什么意思,所以下面用代码直观地表示一下:

System.out.println(2 << 3);//表示2的二进制码整体左移3位,结果为16。2的二进制:00000000_00000000_00000000_00000010移位后的二进制:00000_00000000_00000000_00000010左移之后,右端缺少3位,使用‘0’来补充空位,结果如下:16的二进制:00000_00000000_00000000_00000010000

>>:

将操作数的二进制码整体右移指定位数,右移之后的空使用‘符号位’来补充。同样地也以代码来解释:

System.out.println(16 >> 3);//表示16的二进制代码整体右移3位,结果为2。16的二进制:00000_00000000_00000000_00000010000移位后的二进制:00000_00000000_00000000_00000010右移之后,左端缺少3位,使用符号位(正数为‘0’,负数为‘1’)来补充空位,结果如下:2的二进制:00000000_00000000_00000000_00000010

>>>:

将操作数的二进制码整体右移指定位数,右移之后的空位使用‘0’来补充(注意:没有“<<<”!!!)。这个操作其实和“>>”一样,只是无论操作的数为正或负,均使用‘0’来补充空位。

System.out.println(-16 >>> 3);//表示-16的二进制码整体右移3位,结果为536870910。-16的二进制:11111111_11111111_11111111_11110000移位后的二进制:11111111_11111111_11111111_11110右移三位之后,左端空缺三位,需要用‘0’来补充,结果如下:536870910的二进制:00011111111_11111111_11111111_11110

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消