補下基礎 --
原碼、補碼、反碼
-- 正數補碼、反碼都和原碼一樣, 符號位為0
-- 負數原碼 符號位為1,其他位為 絕對值表示的二進位制數
反碼 原碼符號位不變、其他位按位取反
補碼 反碼 + 1
反碼的問題是 00000000 為0, 反碼為 00000000
10000000 也為0, 反碼為 11111111
這樣0就有兩個反碼, 11111111 -127反碼為 1000000
補碼 反碼 + 1 所以
10000000為0 反碼為11111111 補碼為反碼+1 => 00000000
00000000為0 反碼為00000000 補碼為00000000
這樣 0 的補碼和反碼是一樣的,
而反碼中 被0占用的 10000000
假設在補碼中,10000000 被乙個數占用了, 即10000000 如果是補碼,則反碼為01111111,
因為反碼和原碼的符號位相同,則該反碼對應乙個正數, 而正數對應的補碼和原碼一樣,所以這裡矛盾了,
10000000 這個補碼被空出來的,不可能被【-127,127】之間的數占用,
故在補碼中 把10000000 這個補碼給了-128使用。
由此 補碼的表示範圍擴大了乙個數 【-128, 127】
原碼 反碼 補碼的理解
1 討論原碼之前首先需要了解兩個概念 機器數和真值。a.乙個數值在計算機中的二進位制表示形式,就稱為這個數值的機器數。機器數是帶符號的,其中最高位是符號位,1表示負數,0表示正數。比如,1100 0000就是 64的機器數,即在計算機中的二進位制表示形式。同樣的,0100 0000就是64的機器數。...
原碼反碼補碼的理解
本文採用4位二進位制數的例子,從表象對原碼反碼補碼進行 旨在說明為什麼計算機底層要用補碼表示數字以及用補碼表示數字的優點,不涉及任何數學原理。4位二進位制數的原碼表示 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 0 1 2 3 4 ...
再度理解原碼 反碼 補碼
很早就開始接觸這些熟悉又陌生的關鍵字,但是,時不時還會有錯 看定義 正數的原碼 反碼 補碼形式一致,負數的反碼為原碼的數值位取反,補碼為反碼 1也即是原碼的數值位取反再 1,計算機中以補碼表示資料和運算 舉例 34原碼 反碼 補碼 00100010 34原碼 10100010,反碼 11011101...