在計算機內,有符號數有3種表示法:原碼、反碼和補碼,所有資料的運算都是採用補碼進行的。
原碼:二進位制定點表示法,即最高位為符號位,『0』表示正,『1』表示負,其餘位表示數值的大小。
反碼:正數的反碼與其原碼相同,負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:正數的補碼與其原碼相同,負數的補碼是在其反碼的末尾加1。
例如:分別用原碼、反碼和補碼表示+7和-7
先計算得到7的二進位制數為111
原碼:
符號位數值位+70
0000111-71
0000111
反碼:
符號位數值位+70
0000111-71
1111000
補碼:
補碼:
符號位數值位+70
0000111-71
1111001
注:負數的補碼在加1後可能導致符號位變化
如: 0 1111111在末尾加1 得到 1 0000000
練習:已知某數的原碼為10110100b,試求該數的反碼和補碼。
符號位數值位原碼1
0110100反碼1
1001011補碼1
1001100
已知某數的補碼為11101110b,試求其原碼。
符號位數值位補碼1
1101110反碼1
1101101原碼1
0010010
運算(原碼 補碼 反碼)
表示不帶符號向右移動二進位制數,移動後前面統統補0 兩個箭頭表示帶符號移動,沒有 這種運算子,因為左移都是補零,沒有正負數的區別。如 12 的二進位制為 1111 1111 1111 1111 1111 1111 1111 0100 12 3 即帶符號右移3位,結果是 1111 1111 1111 ...
原碼 反碼和補碼 整數運算
下文以8位整數為例,第一位表示符號位,0為正,1為負 編碼說明 所有整數的原碼 反碼 補碼都相同。負數的反碼和補碼的符號位都不改變,反碼其它位求反,補碼其它位求反後再加1。同乙個二進位制數在不同編碼中的解釋可能不同,一般來說,0開頭的8位資料在三種編碼中解釋相同,而以1開頭的則解釋不同 1 原 00...
原碼 反碼 補碼運算規則
在學習原碼,反碼和補碼之前,需要先了解機器數和真值的概念.1 機器數 乙個數在計算機中的二進位制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號,正數為0,負數為1.比如,十進位制中的數 3 計算機字長為8位,轉換成二進位制就是00000011。如果是 3 就是 10...