計算機基礎 浮點數(shù)與定點小數(shù)有何區(qū)別 舉個例子

計算機基礎 浮點數(shù)與定點小數(shù)有何區(qū)別 舉個例子

浮點數(shù)與定點小數(shù)區(qū)別為:小數(shù)點位置不同、類型不同、精度不同。
一、小數(shù)點位置不同
1、浮點數(shù):浮點數(shù)小數(shù)點位置不定*。

如1.20,0.12。

2、定點小數(shù):定點小數(shù)小數(shù)點位置定*,,約定的小數(shù)點位置在符號位之后、有效數(shù)值部分**位之前。如0.12,0.023。
二、類型不同
1、浮點數(shù):浮點數(shù)的類型表示任意某個實數(shù),可以是整數(shù),也可以是小數(shù)。

如100.00,0.01。
2、定點小數(shù):定點小數(shù)的類型只能表示純小數(shù),如0.1,0.01,0.001。

三、精度不同
1、浮點數(shù):浮點數(shù)無論是整數(shù)還是小數(shù)都要保留**位的精度。

如1.20,0.12。
2、定點小數(shù):定點小數(shù)不保留小數(shù)**位的精度。如0.21,0.000025。

定點數(shù)和浮點數(shù)

在選擇計算機的數(shù)據(jù)表示方式時,通常需要考慮4點因素: 計算機處理的數(shù)據(jù)多帶有小數(shù)點,小數(shù)點在計算機中可以有兩種方法表示;一種數(shù)約定數(shù)值的小數(shù)點固定在某一位置,稱為定點表示法,簡稱為 定點數(shù) 。對應的另一種方法,小數(shù)點可以任意浮動,稱為浮點表示法,簡稱為 浮點數(shù) 。

所謂定點,就是約定機器中數(shù)據(jù)的小數(shù)點位置固定不變。

在計算機中,通常將數(shù)據(jù)的小數(shù)點固定在數(shù)據(jù)的**位之前或者**位之后。前者稱為 定點小數(shù) ,后者稱為 定點整數(shù) 。 定點小數(shù) 是純小數(shù),約定的小數(shù)點位置在符號位之后、有效數(shù)值部分**位之前。若數(shù)據(jù) x 的形式為 x = x0.x1x2…xn ( 其中x0為符號位,x1~xn是數(shù)值的有效部分,也稱為尾數(shù), x1為**有效位 ),則在計算機中的表示形式為: 一般說來,如果最末位 xn = 1,前面各位都為 0 ,則數(shù)的***最小,即 |x|min = 2^(-n) 。

如果各位均為 1,則數(shù)的*百科****,即 |x|max =1-2^(-n) 。所以定點小數(shù)的表示范圍是: 定點整數(shù) 是純整數(shù),約定的小數(shù)點位置在有效數(shù)值部分**位之后。若數(shù)據(jù) x 的形式為 x = x0 x1x2…xn ( 其中x0為符號位,x1~xn 是尾數(shù), xn 為**有效位 ),則在計算機中的表示形式為: 定點整數(shù)的表示范圍是: 當數(shù)據(jù)小于定點數(shù)能表示的最小值時,計算機將它們作0處理,稱為 下溢 ;大于定點數(shù)能表示的**值時,計算機將無法表示,稱為 上溢 ,上溢和下溢統(tǒng)稱為 溢出 。

計算機采用定點數(shù)表示時,對于既有整數(shù)又有小數(shù)的原始數(shù)據(jù),需要設定一個比例因子,數(shù)據(jù)按其縮小成定點小數(shù)或擴大成定點整數(shù)再參加運算,運算結果,根據(jù)比例因子,還原成實際數(shù)值。若比例因子選擇不當,往往會使運算結果產生溢出或降低數(shù)據(jù)的有效精度。 用定點數(shù)進行運算處理的計算機被稱為 定點機 。

與科學計數(shù)法相似,任意一個J進制數(shù)N,總可以寫成: 式中M稱為數(shù) N 的 尾數(shù)(mantissa) ,是一個純小數(shù);E 為數(shù) N 的 階碼(exponent) ,是一個整數(shù),J稱為比例因子 J^(E)的 底數(shù) 。這種表示方法相當于數(shù)的小數(shù)點位置隨比例因子的不同而在一定范圍內可以自由浮動,所以稱為 浮點表示法 。 底數(shù)是事先約定好的(常取2),在計算機中不出現(xiàn)。

在機器中表示一個浮點數(shù)時,一是要給出尾數(shù),用定點小數(shù)形式表示。尾數(shù)部分給出有效數(shù)字的位數(shù),因而決定了浮點數(shù)的表示精度。二是要給出階碼,用整數(shù)形式表示,階碼指明小數(shù)點在數(shù)據(jù)中的位置,因而決定了浮點數(shù)的表示范圍。浮點數(shù)也要有符號位。

因此一個機器浮點數(shù)應當由階碼和尾數(shù)及其符號位組成: 其中 ES 表示階碼的符號,占一位,E1~En 為階碼值,占 n 位,尾符是數(shù) N 的符號,也要占一位。當?shù)讛?shù)取 2 時,二進制數(shù) N 的小數(shù)點每右移一位,階碼減小 1,相應尾數(shù)右移一位;反之,小數(shù)點每左移一位,階碼加 1,相應尾數(shù)左移一位。 若不對浮點數(shù)的表示作出明確規(guī)定,同一個浮點數(shù)的表示就不是**的。例如 11.01 也可以表示成 0.011012^(-3) ,0.1101×2^(-2) 等等。

為了提高數(shù)據(jù)的表示精度,當尾數(shù)的值不為 0 時,其***應大于等于 0.5,即尾數(shù)域的**有效位應為 1,否則要以修改階碼同時左右移小數(shù)點的方法,使其變成這一要求的表示形式,這稱為 浮點數(shù)的規(guī)格化 表示。 當一個浮點數(shù)的尾數(shù)為 0 時,不論其階碼為何值,或者當階碼的值遇到比它能表示的最小值還小時,不管其尾數(shù)為何值,計算機都把該浮點數(shù)看成 0 值,稱為 機器零 *。 浮點數(shù)所表示的范圍比定點數(shù)大。假設機器中的數(shù)由 8 位二進制數(shù)表示(包括符號位):在定點機中這 8 位全部用來表示有效數(shù)字(包括符號);在浮點機中若階符、階碼占 3 位,尾符、尾數(shù)占 5 位,在此情況下,若只考慮正數(shù)值,定點機小數(shù)表示的數(shù)的范圍是 0.0000000 到 0.1111111,相當于十進制數(shù)的 0 到 127/128,而浮點機所能表示的數(shù)的范圍則是 2 – 11×0.0001 到 211×0.1111,相當于十進制數(shù)的 1/128 到 7.5 。

顯然,都用 8 位,浮點機能表示的數(shù)的范圍比定點機大得多。 盡管浮點表示能擴大數(shù)據(jù)的表示范圍,但浮點機在運算過程中,仍會出現(xiàn)溢出現(xiàn)象。下面以階碼占 3 位,尾數(shù)占 5 位(各包括 1 位符號位)為例,來討論這個問題。

圖 2-1 給出了相應的規(guī)格化浮點數(shù)的數(shù)值表示范圍。 圖 中,“可表示的負數(shù)區(qū)域”和“可表示的正數(shù)區(qū)域”及“0”,是機器可表示的數(shù)據(jù)區(qū)域;上溢區(qū)是數(shù)據(jù)***太大,機器無法表示的區(qū)域;下溢區(qū)是數(shù)據(jù)***太小,機器無法表示的區(qū)域。若運算結果落在上溢區(qū),就產生了溢出錯誤,使得結果不能被正確表示,要停止機器運行,進行溢出處理。

若運算結果落在下溢區(qū),也不能正確表示之,機器當 0 處理,稱為機器零。 一般來說,增加尾數(shù)的位數(shù),將增加可表示區(qū)域數(shù)據(jù)點的密度,從而提高了數(shù)據(jù)的精度;增加階碼的位數(shù),能增大可表示的數(shù)據(jù)區(qū)域。

定點數(shù)和浮點數(shù)有何不同

規(guī)定小數(shù)點位置固定不變,稱為定點數(shù)。小數(shù)點的位置不固定,可以浮動,稱為浮點數(shù)。

在計算機中,通常是用定點數(shù)來表示整數(shù)和純小數(shù),分別稱為定點整數(shù)和定點小數(shù)。

對于既有整數(shù)部分、又有小數(shù)部分的數(shù),一般用浮點數(shù)表示。