原碼 反碼 補碼分析

2021-06-27 21:56:51 字數 807 閱讀 7058

反碼:正數:反碼和原碼相同

負數:最高位為符號位為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 當...