原碼 反碼 補碼

2021-10-04 02:59:18 字數 1062 閱讀 8873

如果感覺不是很好懂,我們舉兩個例子:

八位二進位制數:

00000001   最高位為0,二進位制轉換為十進位制是1,所以為+1

10000001   最高位為1,二進位制轉換為十進位制是1,所以為-1

如果去除最高位的符號位,還剩7位,最大可表示為1111111,即十進位制數127。加上符號位11111111~01111111。

所以八位二進位制數原碼的範圍為:-127~127

正數的反碼:與其原碼相同。

負數的反碼:符號位保持為1,對每位取反。

還是舉個兩個例子:

00000001 其反碼就為本身:00000001

10000001 其反碼為:11111110

對於0而言,原碼有兩種情況,自然反碼也有兩種情況:

00000000 —> +0 —> 00000000

10000000 —> - 0 —> 11111111

+127的反碼就為本身01111111,-0的反碼為11111111,這樣一來八位二進位制反碼的範圍就有了:

11111111~01111111,即 -127 ~ 127。

正數的補碼:和原碼相同,二進位制本身。

負數的補碼:①符號位不變,其餘位取反,最後在+1。(反碼+1)

②或者理解為正數的原碼取反+1。

依舊是舉幾個例子:

00000001 補碼為本身:00000001

10000001 補碼:先轉換為反碼11111110,在得到補碼(+1),11111111

或者:其正數為1—>00000001,取反加1—>11111111

對於正數,127的補碼為0111 1111;而-0,原碼1000 0000,其反碼為1111 1111,如果再+1,成為補碼1 0000 0000,我們可以強制把轉換後的10000000強制認定為-128。然而在計算機中,如果是八位二進位制數,那麼最高位的1自然就會丟失。

所以八位二進位制數補碼的範圍為:-128~127

原碼 反碼 補碼

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

原碼 反碼 補碼

數值在計算機中表示形式為機器數 計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的 是十進位制,正如亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手 指頭這個解剖學事實的結果.儘管在歷史上手指計數 5,10進製 的實踐要比二或三進製計數出現的晚.摘...