原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼表示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。
原碼不能直接參加運算,可能會出錯。例如數學上,1+(-1)=0,而在二進位制中
原碼00000001+10000001=10000010,換算成十進位制為-2。顯然出錯了。
反碼通常是用來由原碼求補碼或者由補碼求原碼的過渡碼,反碼就是原碼各位取反(符號除外)。反碼由於0有正負之分,所以沒辦法參加運算。
[+1] = [00000001]原 = [00000001]反[-1] = [10000001]原 = [11111110]反
補碼是計算機把減法運算轉化為加法運算的關鍵編碼。
補碼的表示方法是:
[+1] = [00000001]原 = [00000001]反 = [00000001]補
[-1] = [10000001]原 = [11111110]反 = [11111111]補
使用補碼, 不僅僅修復了0的符號以及存在兩個編碼的問題, 而且還能夠多表示乙個最低數. 這就是為什麼8位二進位制, 使用原碼或反碼表示的範圍為[-127, +127], 而使用補碼表示的範圍為[-128, 127].
因為機器使用補碼, 所以對於程式設計中常用到的32位int型別, 可以表示範圍是: [-2^31, 2^31-1] 因為第一位表示的是符號位.而使用補碼表示時又可以多儲存乙個最小值.
計算機中如何判斷乙個數是否為「機器零」有兩條件,分別為當浮點數尾數為0時,不論其階碼為何值按機器零處理;另外,當浮點數階碼等於或小於它所表示的最小數時,不論尾數為何值,按機器零處理。階碼都是整數,為了機器好判斷設定了移碼.
計算機組成原理 原碼 反碼 補碼 移碼
原碼 正數的原碼 反碼 補碼 都相同,負數的原碼 符合位為1 其他位和正數原碼相同 負數的反碼 符號位不變 數值為 按位取反 負數的補碼 負數反碼 1 對乙個數做 取補運算 對該數各位 含符號位 取反 然後在末位 1 補碼性質 對 y 補 作取補運算可得 y 補。對 y 補 作取補運算可得 y 補。...
計算機組成原理 原碼 反碼和補碼
機器字長 暫存器的位數 計算機的數均存放於暫存器中 若機器字長為16位 有符號數的範圍為 2 15 2 15 1 注意 2 15在原碼中是無法表示的,但在計算機儲存的補碼形式可以表示 無符號數的範圍為0 2 16 1 用0表示正號,用1表示負號 1100 真值 11100 機器數 原碼 x 1110...
計算機組成原理 真值,原碼,補碼,反碼,移碼
就是現實中的數字 二進位制 必須有 實際中整數捨棄了 eg 1101010001 1010001111計算機中唯一標識乙個真值,但是不能用於計算以及無法實現減法,會產生二異性 0,0 求法 正數的原碼是其補全位數後前面加0,負數的原碼是是其補齊位數後去掉 在前面加1 eg 真值 10000101 1...