定點小數

定點小數

定點小數是計算機 處理的數值數據多數帶有小數,小數點在計算機中通常有兩種表示方法,一種是約定所有數值數據的小數點隱含在某一個固定位置上,稱為定點表示法,簡稱定點數 8位字長純小數,第一位為符號位,小數點在第一位後面,後七位為具體數值,如: -0.1001原碼錶示為1.1001,反碼為1.0110,補碼為1.0111 -1的補碼為1.0000000

基本簡介

1. 定點數表示法(fixed-point)

所謂定點格式,即約定機器中所有數據的小數點位置是固定不變的。在計算機中通常採用兩種簡單的約定:將小數點的位置固定在數據的最高位之前,或者是固定在最低位之後。一般常稱前者為定點小數,後者為定點整數。

定點小數是純小數,約定的小數點位置在符號位之後、有效數值部分最高位之前。若數據 x的形式為 x= x. x x… x (其中x為 符號位,x~x 是數值的有效部分,也稱為 尾數, x為最高有效位),則在計算機中的表示形式為:

一般說來,如果最末位 x= 1,前面各位都為0,則數的絕對值最小,即| x|= 2^(-n)。如果各位均為1,則數的絕對值最大,即| x|=1-2^(-n) 。所以定點小數的表示範圍是:

2^(-n) ≤|x|≤1 -2^(-n)

表示方法

由於“編碼總位數為8”的限制,真值-128無法用原碼、反碼來表示,似乎不能用上述規則來求解補碼,但實際上是可行的——只要不管它的最高位即可,操作辦法如下:

將128化為二進制為:1 0000000,最高位為1,可以只對捨去最高位後剩餘的7位進行處理即可,首先取反得:1111111,加1得:1 0000000,最高位有進位需丟棄,即得:0000000,加上符號位就得補碼:1 0000000。

又如,當編碼總位數為4時,真值X=+0.101的原碼、反碼、補碼均為:0 101。

真值X=-0.101的原碼、反碼、補碼依次為:1 101、1 010、1 011。

同理,特例,-1的補碼為:1 000。

在定點小數中,小數點隱含在第一位編碼和第二位編碼之間

定點小數,是指小數點準確固定在數據某個位置上的小數,從實用角度看,都把小數點固定在最高數據位的左邊,小數點前邊再設一位符號位。按此規則,任何一個小數都可以被寫成 :

N = NS . N N … N

如果在計算機中用m+1個二進制位表示上述小數,則可以用最高(最左)一個二進制位表示符號(如用0表示正號,則1就表示負號),而用後面的m個二進制位表示該小數的數值。小數點不用明確表示出來,因為它總是固定在符號位與最高數值位之間,已成定論。定點小數的取值範圍很小,對用m+1個二進制位的小數來說,其值的範圍為:

|N| ≤ 1-2^(-m)  即小於1的純小數,這對用戶算題是十分不方便的,因為在算題前,必須把要用的數,通過合適的 "比例因子"化成絕對值小於1的小數,並保證運算的中間和最終結果的絕對值也都小於1,在輸出真正結果時,還要把計算的結果按相應比例加以擴大。

定點小數表示法,主要用在早期的計算機中,它最節省硬體。隨著計算機硬體成本的大幅度降低,現代的通用計算機都被設計成能處理與計算多種類型數值的計算機。我們將主要通過定點小數討論數值數據的不同編碼方案,而且,定點小數也被用來表示浮點數的尾數部分。

相關詞條

相關搜尋

熱門詞條

聯絡我們