(1)原碼錶示法 原碼錶示法是機器數的一種簡單的表示法。其符號位用表示正號,用:表示負號,數值通常用二進制形式表示。設有一數爲x,則原碼錶示可記做[x]原。spa 例如,X1= +1010110ci X2= 一1001010table 其原碼記做:class [X1]原=[+1010110]原=01010110二進制 [X2]原=[-1001010]原=11001010tab 原碼錶示數的範圍與二進制位數有關。當用8位二進制來表示小數原碼時,其表示範圍:di 最大值爲0.1111111,其真值約爲(0.99)10co 最小值爲1.1111111,其真值約爲(一0.99)10ab 當用8位二進制來表示整數原碼時,其表示範圍: 最大值爲01111111,其真值爲(127)10 最小值爲11111111,其真值爲(-127)10 在原碼錶示法中,對有兩種表示形式: [+0]原=00000000 [-0] 原=10000000
|
(
2)補碼錶示法
機器數的補碼可由原碼獲得。若是機器數是正數,則該機器數的補碼與原碼同樣;若是機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而獲得的。設有一數X,則X的補碼錶示記做[X]補。 例如,[X1]=+1010110 [X2]= 一1001010 [X1]原=01010110 [X1]補=01010110 即 [X1]原=[X1]補=01010110 [X2] 原= 11001010 [X2] 補=10110101+1=10110110 補碼錶示數的範圍與二進制位數有關。當採用8位二進制表示時,小數補碼的表示範圍: 最大爲0.1111111,其真值爲(0.99)10 最小爲1.0000000,其真值爲(一1)10 採用8位二進制表示時,整數補碼的表示範圍: 最大爲01111111,其真值爲(127)10 最小爲10000000,其真值爲(一128)10 在補碼錶示法中,只有一種表示形式: [+0]補=00000000 [+0]補=11111111+1=00000000(因爲受設備字長的限制,最後的進位丟失) 因此有[+0]補=[+0]補=00000000
|
(
3)反碼錶示法
機器數的反碼可由原碼獲得。若是機器數是正數,則該機器數的反碼與原碼同樣;若是機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而獲得的。設有一數X,則X的反碼錶示記做[X]反。 例如:X1= +1010110 X2= 一1001010 [X1]原=01010110 [X1]反=[X1]原=01010110 [X2]原=11001010 [X2]反=10110101 反碼一般做爲求補過程的中間形式,即在一個負數的反碼的未位上加1,就獲得了該負數的補碼。 例1. 已知[X]原=10011010,求[X]補。 分析以下: 由[X]原求[X]補的原則是:若機器數爲正數,則[X]原=[X]補;若機器數爲負數,則該機器數的補碼可對它的原碼(符號位除外)全部位求反,再在未位加1而獲得。現給定的機器數爲負數,故有[X]補=[X]原十1,即 [X]原=10011010 [X]反=11100101 十) 1
[X]補=11100110
例2. 已知[X]補=11100110,求[X]原。 分析以下: 對於機器數爲正數,則[X]原=[X]補 對於機器數爲負數,則有[X]原=[[X]補]補 現給定的爲負數,故有: [X]補=11100110 [[X]補]反=10011001 十) 1
[[X]補]補=10011010=[X]原 |