一:真值和機器數定義
1.真值
真值是指在數值前面用“+”號表示正數,用“-”號表示負數的帶符號二進制數。
2.機器數
機器數(又稱為機器碼)是指在數字系統中用“0”表示符號“+”,用“1”表示符號“-”,即把符號“數值化”后的帶符號二進制數。常用的機器數有原碼、反碼和補碼。
二、3種常用機器數
1.原碼
求取方法:符號位用0表示正,用1表示負;數值位不變,即與真值的數值位相同。
例如,若x=0.1011、y=–10110,則
[x]原碼=0.1011(由於x為正數,所以符號位為0,數值位與真值相同)
[y]原碼=110110(由於y為負數,所以符號位為1,數值位與真值相同)
特點:求取方便,運算不方便,“0”有“+0”和“-0”兩種不同形式。
2.反碼
求取方法:符號位用0表示正,用1表示負。數值位與符號位相關,當為正數時,數值位不變,即與真值的數值位相同;當為負數時,數值位是真值的數值位按位取反(0變為1,1變為0)。
例如,若x=-0.1010、y=+10101,則
[x]反碼=1. 0101(由於x為負數,所以符號位為1,數值位為真值的數值位按位變反)
[y]原碼=010101(由於y為正數,所以有符號位為0,數值位與真值相同)
特點:求取較方便,運算較方便(可以將減法運算轉化為加法運算),“0”有“+0”和“-0”兩種不同形式。
3.補碼
求取方法:符號位用0表示正,用1表示負。數值位與符號位相關,當為正數時,數值位不變,即與真值的數值位相同;當為負數時,數值位是真值的數值位按位取反,並在末位加1。
例如,若x=-11010、y=+0.1010,則
[x]補碼=100110(由於x為負數,所以符號位為1,數值位為真值的數值位按位變反,末位加1)
[y]補碼=0.1010(由於y為正數,所以有符號位為0,數值位與真值相同)
特點:運算方便(可以將減法運算轉化為加法運算),“0”只有“+0”一種形式。
三:機器碼求法對比
四、真值、原碼、反碼、補碼的相互轉換
帶符號二進制數的真值、原碼、反碼和補碼之間的相互轉換如圖1所示。
圖1 真值、原碼、反碼和補碼之間的相互轉換
最后讓我們來做一個練習
題目
答案
see you!