原碼反碼補碼

2021-10-07 15:39:58 字數 1807 閱讀 5773

1、對計算機中常見資料簡單分類

2、機器數 與 真值

機器數就是數值在計算機中的二進位制表現形式

機器數在計算機中有符號,使用最高位表示符號,使用0表示正,使用1表示負

乙個位元組8個bit位表示

例:+5=0000 0101

-10=1000 1010

真值機器數所表示的真正的數值

例:1000 1010=-10

3、原碼

原碼就是符號位加上真值的絕對值

正數:34:00100010

負數:-29:10011101

-19:10010011

4、反碼

正數:正數的反碼=原碼

例:+3=0000 0011【原碼】=0000 0011【反碼】

負數:符號位不變,其餘各位直接取反

例:-7 原碼:1000 0111 反碼:1111 1000

-33 原碼:1010 0001 反碼:1101 1110

-37 原碼:1010 0101 反碼:1101 1010

-49 原碼:1011 0001 反碼:1100 1110

5、補碼

計算機中資料以補碼的形式儲存,同樣以補碼的形式參與運算

正數:原碼=反碼=補碼

例:+3=0000 0011【原碼】=0000 0011【反碼】=0000 0011【補碼】

負數:首先求得反碼。在反碼基礎上+1,加到最低位上

例:-34 原碼:1010 0010 反碼:1101 1101 補碼:1101 1110

-29 原碼:1001 1101 反碼:1110 0010 補碼:1110 0011

-47 原碼:1010 1111 反碼:1101 0000 補碼:1101 0001

6、擴充套件

(1)為什麼需要反碼和補碼?

反碼計算機的運算器只有加法器,沒有減法器,為了將減法轉換為加法進行計算。但是,反碼有缺陷,正負相加0的表示不唯一

補碼為了解決反碼正負相加不唯一的情況,使用高位溢位解決。

(2)使用補碼計算

例:45-19=26

45 補碼:0010 1101

-19補碼:1110 1101

0001 1010【補碼】=26

53-27=26

53 補碼:0011 0101

-27補碼:1110 0101

0001 1010【補碼】=26

65-34=31

65 補碼:0100 0001

-34 補碼:1101 1110

0001 1111【補碼】=31

-34-27=-61

-34 補碼:1101 1110

-27補碼:1110 0101

1100 0011【補碼】

1011 1100 【取反】

1011 1101【+1為原碼】=-61

(3)將補碼轉換為原碼

正數:不需要轉

負數:求補碼的補碼

將負數的補碼當成原碼,然後求該原碼的補碼

例:1101 1110【補碼】 1010 0001【取反】 1010 0010【原碼】

1001 1011【補碼】 1110 0100【取反】 1110 0101【原碼】

1110 0011 【補碼】 1001 1100【取反】 1001 1101【原碼】

1001 0011 【補碼】 1110 1100【取反】 1110 1101【原碼】

1111 1111 1000 0000【補碼】1000 0000 0111 1111【取反】1000 0000 1000 0000=-128

計算規則:符號位不變,其餘各位置直接取反,然後加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 當...

原碼 反碼 補碼

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