java——>> 和>>>


试一下

    public static void main(String[] args) {

        System.out.println(Integer.toBinaryString(-16));
        System.out.println(Integer.toBinaryString(-16>>2));
        System.out.println(Integer.toBinaryString(16));
        System.out.println(Integer.toBinaryString(16>>2));
        System.out.println(Integer.toBinaryString(-16));
        System.out.println(Integer.toBinaryString(-16>>>2));
        System.out.println(Integer.toBinaryString(16));
        System.out.println(Integer.toBinaryString(16>>>2));
        System.out.println(-16>>2);
        System.out.println(-16>>>2);
        System.out.println(-15>>2);
        System.out.println(-15>>>2);
        System.out.println(15>>2);
        System.out.println(15>>>2);
    }

得到结果:

11111111111111111111111111110000
11111111111111111111111111111100
10000
100
11111111111111111111111111110000
111111111111111111111111111100
10000
100
-4
1073741820
-4
1073741820
3
3

结论:

  >> :

    负数右移用1补位

    正数右移用0补位

  >>>:

    无论正负,都用0补位

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM