機器數和真值
機器數
一個數在計算機中的二進制表示形式, 叫做這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數為0, 負數為1。
例,十進制中的數 +3 ,計算機字長為8位,機器數是00000011;如果是 -3 ,機器數是 10000011 ;
真值
因為機器數的第一個位置存放的是符號位,所以不能參與進制的轉換。因此把帶符號位的機器數對應的真正數值稱為機器數的真值。
例,機器數10000011,其4最高位1代表負,則真正數值是-3而不是形式值131(10000011轉換成十進制等於131)。
原碼、反碼和補碼
原碼
用最高位表示符號位,其他位置存放該數二進制的絕對值;也就是最簡單的機器鼠表示法。
例,帶符號位的四位二進值數
-
1010 : 最高位為‘1’,表示這是一個負數,其他三位為‘010’,
-
即(0*2^2)+(1*2^1)+(0*2^0)=2(‘^’表示冪運算符)
-
所以1010表示十進制數(-2)。
下圖給出部份正負數數的二進制原碼表示法:
反碼
正數的反碼等於原碼,附屬的反碼就是他的原碼除符號位外,按位取反。
例,帶符號位的四位二進制數
-
3是正數,反碼與原碼相同,則可以表示為0011
-
-3的原碼是1011,符號位保持不變,低三位(011)按位取反得(100)
-
所以-3的反碼為1100
下圖給出部分正負數的二進制數反碼表示法:
補碼
正數的補碼等於它的原碼,負數的補碼等於反碼+1
特點
- 數值為零的補碼表示唯一。
- 正數補碼馬志隨着針織增大而增大,負數補碼碼值隨着真值增大而增大。
補碼加減法運算規則
- 參加運算的操作數用補碼表示。
- 符號位等同於數值位一起參加運算
- 對於兩數相加間的各種情況,計算機都執行加法操作。當操作碼為加法運算時就直接進行相加,當操作碼為減時,將簡述聯通符號位一起求反末尾加1再與被減數相加。
- 結果用補碼表示。
- 同號相加和異號相減的情況會溢出。
例: