C 基礎 原碼 反碼及補碼

2021-10-09 17:40:39 字數 467 閱讀 3656

以下內容均以8bit值為例進行敘述。

資料說是為了方便計算機將減法轉換為加法,計算機中只有加法運算器,但是為什麼使用補碼可以進行轉換?這一步的意義是什麼,以二進位制講解比較抽象,以圓為例進行講解。

其實補碼可以用數學中的補數或相反數模擬。

如下圖所示圓,原點在圓心,往右為x軸正方向,以圓心為端點的射線與x軸夾角為θ,角度逆時針為負,順時針為正。

設當前角度∠xoa=30°,要轉到∠xoa』=90°,有兩種方式:

順時針轉300°,即30°-300°=-270°=90°

逆時針轉60°,即30°+60°=90°

在乙個圓中,為什麼減300°等於加60°,為什麼-270°等於90°,搞清楚了這個問題就知道補碼的作用了。

參考

關於原碼反碼及補碼

首先,在有符號數中,正數的原始碼,反碼和補碼都是相同的,首位為符號位 正數為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 當...