原碼反碼補碼

2021-10-07 15:39:58 字數 1251 閱讀 3639

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

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

乙個位元組8個bit位表示

+5=0000 0101

-10=1000 1010

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

如:1000 1010 =-10

原碼就是符號位加上真值的絕對值 範圍(10000000-01111111) (-128-127)

正數:正數的反碼=原碼 如:+3=00000011 (原碼)= 0000 0011(反碼)

負數:符號位不變,其餘各位直接取反 如:-7 原碼:1000 0111 反碼 1111 1000

計算機中資料以補碼的形式儲存與計算

正數:原碼=反碼=補碼 如:3 0000 0011(原碼)= 0000 0011(反碼) =0000 0011(補碼)

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

eg:​ -34 -29 -47

原碼 1010 0010 1001 1101 1010 1111

反碼 11011101 11100010 1101 0000

補碼 11011110 11100011 1101 0001

反碼:​ 在設計計算機時,只有加法器沒有減法器。為了將減法轉換為加法,設計反碼。

​ 但是反碼有缺陷,正負相加0的表示不唯一。

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

使用補碼計算:

45-19 00101101 +11101101=00011010

53-27 00110101+11100101=00011010

65-34 01000001 +11011110=00011111

-34-27 11011110 +11100101=11000011

正數:不需要轉

負數:求補碼的補碼

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

求原碼:除符號位取反加一

eg:​ 補碼 反 原碼

11011110 10100001 10100010

10011011 11100100 11100101

11100011 10011100 10011101

10010011 11101100 11101101

eg:1000 0000(補碼)= -128

1111 1111 1000 0000(-128補碼)求原碼

1000 0000 0111 1111 + 1 = 1000 0000 1000 0000

原碼 反碼 補碼

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