见代码演示:
package day02; /** * >> 与 >>> 区别? */ public class MyTest { public static void main(String[] args) { /* * 5 * * 00000000 00000000 00000000 00000101 */ int a = 5; int a1 = a>>1; int a2 = a>>>1; System.out.println(a1+"--"+a2); //2--2 /* * -5 * * 10000000 00000000 00000000 00000101 --原码 * 11111111 11111111 11111111 11111010 --反码 * 11111111 11111111 11111111 11111011 --补码 * * 11111111 11111111 11111111 11111101 --(-3) * 01111111 11111111 11111111 11111101 --(2147483645) */ int b = -5; int b1 = b>>1; int b2 = b>>>1; System.out.println(b1+"--"+b2); //-3--2147483645 /* * 总结: * 1.>> 需考虑符号位 * 2.>>> 不考虑符号位,缺少的位数补0 * */ } }
有不对之处还望指正!!!
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-07 15:22:22