「java右移原理」java向右位移
本篇文章给大家谈谈java右移原理,以及java向右位移对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java 中右移>>和逻辑右移>>的左操作数怎么运算的
0xa2 16进制,对应的十进制是162,对应的二进制是10100010(32位,前面的0不显示)
101000102 = 00101000 这个正好是十进制的40
(byte) 0xa2 由于byte的最大值是127,所以byte162要取模,结果是-94,对应的二进制是:11111111111111111111111110100010
11111111111111111111111110100010 2 = 11111111111111111111111111101000,即十进制-24
和的区别是:
带符号右移,高位补充符号,正0负1
不带符号右移,高位补充正0
有上面的记过得知,(byte) 0xa2 = -24这是个负数
所以(byte) 0xa22
会很大
java逻辑右移
2二进制表示为10,逻辑右移两位即为0。
逻辑右移(),无论什么时候都在左填0。而算术右移()则在左填符号位,符号位若为0则与逻辑右移结果一致,符号位为1则不一致。
Java 中 算术右移和逻辑右移有什么区别
逻辑右移就是不用考虑最高位的符号位,只需要在移动之后的空位补0就行了,例如
初始数据:
1111
1111
右移一位:
0111
1111
最高位补0
算术右移则是要考虑符号位,如果最高位为1、则移动后在最高位补1、若最高位不为1,则移动后在最高位补0,例如
初始数据,最高位为1:
1111
1001
右移一位
1111
1100
初始数据,最高位不为1:
0111
1001
右移一位
0011
1100
java 左右移的问题,
左移就是将原来的参数所有二进制位向左移动指定的位数,本例中就是移动二位,然后末尾以零补齐。右移正好相反,向右边移动指定位数,然后左边以零补齐。
教你个简单的计算方法,以本例来说,左移就是将原数乘以2的2次方(4)。右移就是原数除以2的2次方(4)。就是最后的结果。
关于java右移原理和java向右位移的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。