java 左移 右移 无符号右移

/**
         * 右移 >> 正数
         * 0000 0000 0000 0000 0000 0000 0000 0101
         * 0000 0000 0000 0000 0000 0000 0000 0000
         */
        System.out.println(5 >> 3);//结果为0
        /**
         * 右移 >> 负数
         * 负数补码
         * 1111 1111 1111 1111 1111 1111 1111 1011
         * 右移,左边补1
         * 1111 1111 1111 1111 1111 1111 1111 1111
         */
        System.out.println(-5 >> 3);//结果为 -1
        /**
         * 右移 >>> 无符号右移 即高位补0
         * 1111 1111 1111 1111 1111 1111 1111 1011
         * 0001 1111 1111 1111 1111 1111 1111 1111
         * 因此变成了正数了
         */
        System.out.println(-5 >>> 3);// 结果是 536870911
        /**
         * 无符号左移 <<< ,不存在的
         */
相关文章
相关标签/搜索