继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java学习之旅

所谓伊人_在水一方
关注TA
已关注
手记 273
粉丝 23
获赞 169

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

<<:

将操作数的二进制码整体左移指定位数,左移之后的空使用‘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

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP