計(jì)算機(jī)基礎(chǔ) 浮點(diǎn)數(shù)與定點(diǎn)小數(shù)有何區(qū)別 舉個(gè)例子

計(jì)算機(jī)基礎(chǔ) 浮點(diǎn)數(shù)與定點(diǎn)小數(shù)有何區(qū)別 舉個(gè)例子

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

如1.20,0.12。

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

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

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

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

定點(diǎn)數(shù)和浮點(diǎn)數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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