栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java笔记

java移位运算符<<, >>, >>>

二进制最左端的数字是符号位,0代表正,1代表负
逻辑左移=算数左移:高位移除,低位补0;
算数右移:低位溢出,高位用符号位的值补;
逻辑右移:低位溢出,高位补0;

比如一个有符号位的8位二进制数10101010,[]是添加的数字

逻辑左移一位:0101010[0]
逻辑左移两位:101010[00]

算术左移一位:0101010[0]
算术左移两位:101010[00]

逻辑右移一位:[0]1010101
逻辑右移两位:[00]101010

算术右移一位:[1]1010101
算术右移两位:[11]101010

算术左移和算术右移主要用来进行有符号数的倍增、减半
逻辑左移和逻辑右移主要用来进行无符号数的倍增、减半

符号例子解释
<<num<< n相当于 n u m × 2 n num×2^n num×2n,算数左移(逻辑左移)
>>num>>n相当于 n u m 2 n begin{array}{cc} frac{num}{2^n} end{array} 2nnum​​,算数右移
>>>num>>>n逻辑右移(无符号右移),当num为正数和算数右移一个效果

如:
-10:
Java中-10表示为: 11111111111111111111111111110110
-10 >> 2为,带符号右移(算数右移): 11111111111111111111111111111101 = -3
-10 >>> 2为,无符号右移: 00111111111111111111111111111101 = 1073741821
额外:
-10 << 2,(逻辑左移,算数左移) 11111111111111111111111111011000 = -40

作者:Real_man
链接:https://www.jianshu.com/p/5af0d2152952
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

————————————————
版权声明:本文为CSDN博主「Java识堂」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzti_erlie/article/details/80204053

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771296.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号