1.純小數和純整數數軸
純小數的原碼反碼補碼數軸:
純整數的原碼反碼補碼數軸:
2.機器浮點數的表示
一個機器浮點數由階碼和位數及其符號位組成(尾數:用定點小數表示,給出有效數字的位數決定了浮點數的表示精度;階碼:用整數形式表示,指明小數點在數據中的位置,決定了浮點數的表示範圍)
階符和階碼錶示的是指數部分,數符和尾數表示的是數值部分,階符和數符都是用一位二進制表示,分別表示指數的正負和數值的正負(爲1爲負,爲0爲正)。
例:表示+0.110*2^(-5)
指數部分:-5,則階符Es=1,階碼=0…0101
數值部分:+0.110,則數符Ms=0,尾數=0.110…0
即1 0…0101 0 0.110…0。
IEEE754標準
754標準中,S表示數符,E表示階碼(用移碼錶示),階碼的符號位也在隱含階碼中,M表示尾數(即數值部分)。
移碼錶示:
在754移碼中,用0表示無符號編碼的127(0111 1111),在非754移碼中,用0表示無符號編碼的128(1000 0000)。當754移碼爲-127時,可近似的將浮點數看成0,當754移碼爲128時,可近似將浮點數看成無窮大。所以最接近0的浮點數的(754移碼錶示的)指數爲-126,最大的浮點數的(754移碼錶示的)指數爲127。
將754移碼錶示的數轉化爲無符號數表示的二進制編碼:無符號編碼=754移碼+127=754移碼-1+128。
例:754移碼爲5
轉化爲無符號編碼:5+127=4+128=10000100。
將無符號編碼轉化爲754移碼:754移碼=無符號編碼-127。
3.溢出的判斷
在定點小數機器中,數的表示範圍爲|x|<1。在運算過程中如出現大於1的現象,稱爲“溢出”。兩個正數相加,結果大於機器所能表示的最大正數,稱爲上溢。而兩個負數相加,結果小於機器所能表示的最小負數,稱爲下溢。
後來補充:求一個數的相反數的補碼(用於補碼減法)y,可以先求出這個數的補碼y補,再將這個數的補碼包括符號位求反且最末位加1,就可以得到[-y]補。
爲了判斷“溢出”是否發生,可採用兩種檢測的方法。第一種方法是採用雙符號位法,這稱爲“變形補碼”或“模4補碼”,從而可使模2補碼所能表示的數的範圍擴大一倍。
例 x=+0.1100 y=+0.1000 求x+y
解: [x]補 00.1100
+ [y]補 00.1000
[x+y]補 01.0100 結果溢出(上溢)
結論:
⑴ 兩符號位相異時溢出。01爲上溢,10爲下溢
⑵ 無論溢出與否,最高符號位始終指示正確的符號
第二種溢出檢測方法是採用單符號位法:
結論:符號位進位(Cf)和數值部分最高位(Cd)異或結果爲1,則溢出,否則(同時有進位或同時無進位)未溢出。
當最高有效位產生進位而符號位無進位時,產生上溢;當最高有效位無進位而符號位有進位時,產生下溢。
4.全加器結構
設定兩個二進制數字Ai,Bi和一個進位輸入Ci 相加,產生一個和輸出Si , 以及一個進位輸出Ci+1。
真值表:
化簡得:
Si的表達式並不是根據公式推算出的,是化簡到一定程度,寫出真值表,可以看出其真值表和公式Si=Ai異或Bi異或Ci的真值表一樣,爲了簡化電路的設計,用Si=Ai異或Bi異或Ci代表Si的表達式。
按照上面的表達式組成一位全加器:
其中異或門延時爲3T,與非門延時爲T,所以Si的延時爲6T,Ci的延時爲5T。