原碼、反碼、補(bǔ)碼

計算機(jī)中數(shù)值以補(bǔ)碼形式存放
原碼
反碼:符號位不變,數(shù)值位在原碼上取反
補(bǔ)碼:符號位不變,數(shù)值為在原碼上取反并加一(反碼 + 1),為了解決 +0 和 -0 的問題

正數(shù)的:原碼,反碼,補(bǔ)碼相同
負(fù)數(shù)的:原碼,反碼,補(bǔ)碼均不相同


    public static void main(String[] args) {
        // 1 111 1111 原碼
        // 1 000 0000 反碼
        // 1 000 0001 補(bǔ)碼 -127 計算機(jī)中存儲的是補(bǔ)碼
        // 1000 0001 & 1111 1111 = 1000 0001 = 129
        byte a = -127;
        System.out.println(a);

        System.out.println((byte)(a & 0xff));
        int d = a;

        // 1000 0000 0000 0000 0000 0000 0111 1111      -127 原碼
        // 1111 1111 1111 1111 1111 1111 1000 0000      -127 反碼
        // 1111 1111 1111 1111 1111 1111 1000 0001      -127 32位補(bǔ)碼 int
        // 1 000 0001                                   -127 8位補(bǔ)碼  byte
        System.out.println(d);

        int c = a & 0xff;
        System.out.println(c);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容