7 13 1 原碼反碼補碼

2022-05-13 20:44:57 字數 1318 閱讀 5340

計算機中的符號數有三種表示方法,即原碼、反碼和補碼。

三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。

在計算機系統中,數值一律用補碼來表示和儲存。

原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。

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

正數的原碼、反碼、補碼都相同。

原碼:就是二進位制表示,最高位為符號位,0表示正,1表示負

反碼:負數的反碼,就是逐位取反(符號位除外)

補碼:負數的補碼,反碼末位加1.

正數5:

二進位制:00000101

原碼:00000101

反碼:00000101

補碼:00000101

負數5:

二進位制:10000101

原碼:10000101

反碼:11111010

補碼:11111011

計算: 2-1

2-1 = 2 + (-1)

2 000000100000001000000010

-1 100000011111111011111111

負數的補碼求原始資料步驟:1. -12. 取反3. 符號位改為1

1111111111111110

2

00000010 

-1 11111111

00000001

計算:2-3 = 2 + (-3) = -1

2 000000100000001000000010

-3100000111111110011111101

2 00000010-3 11111101 11111111

-128是人為規定的。

因為8位2進製中,存在 「-0」(1000 0000)和"0"(0000 0000),雖然「-0」也是「0」,但根據正、反、補碼體系,「-0」的補碼和「+0」是不同的,這樣就出現兩個補碼代表乙個數值的情況。為了將補碼與數字一一對應,所以人為規定「0」一律用「+0」代表。同時為了充分利用資源,就將原來本應該表示「-0」的補碼規定為代表-128。

驗證 1000 0000 到底是0還是-128,先假設為x

則     2+x=?

0000 0010

1000 0000

1000 0010       -->     1000 0001      -->      0111 1110

即為正負126

所以x=-128或x=124,顯然應該取負數解!

原碼 反碼 補碼

正數 原碼 反碼 補碼一樣 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進製 的實踐要比二或三進製計數出現的晚.摘...