反碼:正數:反碼和原碼相同
負數:最高位為符號位為1,其餘位原碼取反
補碼:正數:原碼、反碼和補碼相同
負數:最高位符號位為1,其餘位為原碼取反,在對整個書加1
計算機中原碼用於表示有符號的正數和無符號整數
ex:
int x=1;
//在記憶體中十六進製制的表示方式為
//0000 00001
//0000 0000 0000 0000 0000 0000 0000 0001
//0表示正數,1代表負數 (二進位制)
計算機的負數用補碼來表示
ex:
int x=-1;
//在記憶體中十六進製制的表示方式為
//ffff ffff
//1111 1111 1111 1111 1111 1111 1111 1111 (二進位制) 最高位1 表示符號位
分析:x=-1
//int 4位元組32位
//1000 0000 0000 0000 0000 0000 0000 0001 //-1的原碼
//1111 1111 1111 1111 1111 1111 1111 1110 //-1的反碼
//1111 1111 1111 1111 1111 1111 1111 1111 //-1的補碼
從這裡我們可以看出,計算機記憶體中是一哦那個補碼來表示負數的
例題分析:
void main()
原碼 反碼 補碼簡單分析
原碼 signed magnitude 是一種計算機中對數字的二進位制定點表示方法。原碼表示法在數值前面增加了一位符號位 即最高位 msb 為符號位 正數該位為0,負數該位為1 0有兩種表示 0和 0 其餘位表示數值的大小。優點 簡單直觀 例如,我們用8位二進位制表示乙個數,則 11的原碼為0000...
原碼 補碼和反碼分析
補碼是為了解決計算機的減法問題,計算的本質是取模。計算機只有加法運算器,沒有減法,所以引入符號位,例1001表示 1 注 從硬體的角度上看,只有正數加負數才算減法。正數與正數相加,負數與負數相加,其實都可以通過加法器直接相加。2.引入符號位後會出現問題 因為要用負數表示減法,所以這裡符號位也有參與運...
原碼 反碼 補碼
正數 原碼 反碼 補碼一樣 7 原 0 0000111 b 7 反 0 0000111 b 7 補 0 0000111 b 負數 原碼就是原來的表示方法 反碼是除符號位 最高位 外取反 補碼 反碼 1 7 原 1 0000111 b 7 反 1 1111000 b 7 補 1 1111001 b 當...