原碼 反碼 補碼

2021-07-28 12:17:02 字數 824 閱讀 9684

計算機系統中,數值一律用補碼來表示和儲存。原因在於,有如下好處:

使用補碼,可以將符號位和數值域統一處理;

加法和減法也可以統一處理。

補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。

設機器字長為n,則乙個數的原碼就是用乙個n位的二進位制數,其中最高位為符號位:正數為0,負數為1。剩下的n-1位表示該數的絕對值。以n=

8 為例: x=

+101011,[

x]原=

00101011 x

=−101011,[

x]原=

10101011

位數不夠的用0補全。

ps:正數的原、反、補碼都一樣;0的原碼跟反碼有兩個,因為這裡0被分為+0和-0。

在原碼的基礎上,符號位不變其餘位按位取反(即是0變1,1變0),同樣以n=

8 為例: x=

−101011,[

x]原=

10101011,[

x]反=

11010100

ps:0的補碼是唯一的,如果機器字長為8那麼[0

]補=00000000

乙個負整數(或原碼)與其補數(或補碼)相加,和為模。

原碼和補碼互為補碼(即,對乙個整數的補碼再求補碼,等於該整數自身)。

補碼的正零與負零表示方法相同。

他人博文

為何signed char範圍為-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進製 的實踐要比二或三進製計數出現的晚.摘...