原碼 反碼 補碼個人記錄

2021-10-05 23:16:49 字數 782 閱讀 2433

①計算機中實際上並沒有減法,而只有加法,減法用增加乙個數的相反數實現。

即1 - 1在計算機中的實際預算中為 1 + (-1)

而此時如果使用原碼進行運算:0 0000001(1) + 1 0000001(-1) = 1 0000010(-2),會出現運算錯誤的情況。

為了解決原碼做減法出錯的問題,出現了反碼 

0 0000001【1反】 + 1 1111110【-1反】 = 1 1111111【0反】 ==> 1 0000000【0原】

但是使用反碼時,0既可以用0表示,也可以用-0表示。然而這是沒有意義的,所以出現了補碼

0 0000001【1補】 + 1 1111111【-1補】 = 0 0000000【0補】 ==> 0 0000000【0原】

並且在使用補碼時,原來-0所佔位置可以用來表示該長度所能表示的最小的數,若為8位則能夠表示-128。

(-1)+(-127)= -128

1 1111111【-1補】 + 1 0000001【-127補】 = 1 0000000【-128補】 ==> 1 0000000【-128原】

①取相反數

5取相反數 0 0000101【5原5反5補】     1 0000101【-5原】 1 1111010【-5反】 1 1111011【-5補】

由上可看出常規情況下乙個數取相反數為所有數字取反加一

但是對於1 0000000【-128補】所有數字取反加一後仍然是它本身

如有錯漏,歡迎指出。

原碼,反碼,補碼,個人理解

原碼 二進位制定點表示法,即最高位為符號位,0 表示正數,1 表示負數,其餘的位表示數值的大小 正數的最高位為0 負數的最高位為1 例子 符號位 數值位 7 0 0000111 7 1 0000111 反碼 正數的反碼與原碼相同,沒有任何改變 負數的反碼 與原碼的符號位不變,其他值取反,也就是0變1...

原碼 反碼 補碼

正數 原碼 反碼 補碼一樣 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 當...

原碼 反碼 補碼

正數 原碼 反碼 補碼一樣 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 當...