一、真值與機器數(shù)
1.真值
真值是指在數(shù)值前面用“+”號表示正數(shù),用“-”號表示負數(shù)的帶符號二進制數(shù)。
2.機器數(shù)
機器數(shù)(又稱為機器碼)是指在數(shù)字系統(tǒng)中用“0”表示符號“+”,用“1”表示符號“-”,即把符號“數(shù)值化”后的帶符號二進制數(shù)。常用的機器數(shù)有原碼、反碼和補碼。
二、3種常用機器數(shù)
1.原碼
求取方法:符號位用0表示正,用1表示負;數(shù)值位不變,即與真值的數(shù)值位相同。
例如,若x=0.1011、y=–10110,則
[x]原碼=0.1011(由于x為正數(shù),所以符號位為0,數(shù)值位與真值相同)
[y]原碼=110110(由于y為負數(shù),所以符號位為1,數(shù)值位與真值相同)
特點:求取方便,運算不方便,“0”有“+0”和“-0”兩種不同形式。
2.反碼
求取方法:符號位用0表示正,用1表示負。數(shù)值位與符號位相關,當為正數(shù)時,數(shù)值位不變,即與真值的數(shù)值位相同;當為負數(shù)時,數(shù)值位是真值的數(shù)值位按位取反(0變?yōu)?,1變?yōu)?)。
例如,若x=-0.1010、y=+10101,則
[x]反碼=1. 0101(由于x為負數(shù),所以符號位為1,數(shù)值位為真值的數(shù)值位按位變反)
[y]原碼=010101(由于y為正數(shù),所以有符號位為0,數(shù)值位與真值相同)
特點:求取較方便,運算較方便(可以將減法運算轉化為加法運算),“0”有“+0”和“-0”兩種不同形式。
3.補碼
求取方法:符號位用0表示正,用1表示負。數(shù)值位與符號位相關,當為正數(shù)時,數(shù)值位不變,即與真值的數(shù)值位相同;當為負數(shù)時,數(shù)值位是真值的數(shù)值位按位取反,并在末位加1。
例如,若x=-11010、y=+0.1010,則
[x]補碼=100110(由于x為負數(shù),所以符號位為1,數(shù)值位為真值的數(shù)值位按位變反,末位加1)
[y]補碼=0.1010(由于y為正數(shù),所以有符號位為0,數(shù)值位與真值相同)
特點:運算方便(可以將減法運算轉化為加法運算),“0”只有“+0”一種形式。
三、真值、原碼、反碼、補碼的相互轉換
帶符號二進制數(shù)的真值、原碼、反碼和補碼之間的相互轉換如圖1所示。
圖1 真值、原碼、反碼和補碼之間的相互轉換