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
        /**
         * 無符號左移 <<< ,不存在的
         */
相關文章
相關標籤/搜索