原碼 反碼 補碼

2021-07-04 20:48:26 字數 720 閱讀 3245

趙岩 《c語言點滴》筆記

原碼是一種計算機中對數字的二進位制表示方法,數碼序列中最高位為符號位,符號位為0 表示正數,符號位為1表示負數;其餘有效值部分用二進位制的絕對值表示。

如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。

如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在末位加1。

假定用4位二進位制數表示乙個整數

用原碼表示有符號資料有兩個問題:

* 正負相加不等於0

* 有兩個0存在

解決了

* 正負相加為0

但是依然有兩個0

正負相加,如果丟棄最高位的進製,結果滿足正負相加等於0

同時解決了

* 正負相加為0

* 只有1個0

因此,補碼是終極的解決方案。

得出的結論:整形數在計算機中,使用補碼表示。

原碼 反碼 補碼

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