回覆列表
-
1 # 使用者2953413550839
-
2 # 使用者3289201655435
浮點數,是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。
浮點數,是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的說,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法。
浮點數
浮點計算
是指浮點數參與的運算,這種運算通常伴隨著因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × b^e。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來儲存)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作規格化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。
結構
由此可以看出,在計算機中表示一個浮點數,其結構如下:
尾數部分(定點小數) 階碼部分(定點整數)
階符±
階碼e
數符±
尾數m
這種設計可以在某個固定長度的儲存空間內表示定點數無法表示的更大範圍的數。
浮點加法減法運算
設有兩個浮點數x和y,它們分別為
x = Mx*2^Ex
y = My*2^Ey
其中Ex和Ey分別為數x和y的階碼,Mx和My為數x和y的尾數。
兩浮點數進行加法和減法的運算規則是
設 Ex小於等於Ey,則 x±y = (Mx*2^(Ex-Ey)±My)*2^Ey,
完成浮點加減運算的操作過程大體分為四步:
1. 0 運算元的檢查;
2. 比較階碼大小並完成對階;
3. 尾數進行加或減運算;
4. 結果規格化並進行舍入處理。
⑴ 0 運算元檢查
浮點加減運算過程比定點運算過程複雜。如果判知兩個運算元x或y中有一個數為0,即可得知運算結果而沒有必要再進行後續的一系列操作以節省運算時間。0運算元檢查步驟則用來完成這一功能。
⑵ 比較階碼大小並完成對階
兩浮點數進行加減,首先要看兩數的階碼是否相同,即小數點位置是否對齊。若二數階碼相同,表示小數點是對齊的,就可以進行尾數的加減運算。反之,若二數階碼不同,表示小數點位置沒有對齊,此時必須使二數階碼相同,這個過程叫作對階。
要對階,首先應求出兩數階碼Ex和Ey之差,即
△E = Ex-Ey
若△E=0,表示兩數階碼相等,即Ex=Ey;若△E>0,表示Ex>Ey;若△E<0,表示Ex<Ey。
當Ex≠Ey 時,要透過尾數的移動以改變Ex或Ey,使之相等。原則上,既可以透過Mx移位以改變Ex來達到Ex=Ey,也可以透過My移位以改變Ey來實現Ex=Ey。但是,由於浮點表示的