一:二進位制定點法
如:0.011 那麼它表示1/8+2/8=3/8;
可以看出它並不能精確地表示每乙個小數值,在不提高位的情況下只能盡量選擇最接近的值。比如1/5,十進位制可以表示為0.2,但2進製不能精確表示。
二:ieee浮點法:
公式:v=(-1)^s*m*(2^e);
v表示數值。
s表示符號,s=0時為正,s=1時為負。
m表示表示尾數,當為非規格化時,m=f,當為規格化時m=f+1;
e為階碼;
對於乙個階碼位是k,尾數字為n的數有以下情形:
1.規格化時(即k位不全為0和全為1):
階碼 e=e-bias; 其中e表示為k位無符號整數,bias表示偏量 bias=2^(k-1)-1;
尾數 m=1+f; 其中f為小數。
2.非規格化時(即k位全為0的情況):
階碼 e=1-bias; 注:這樣表示的原因是為了和規格化所表示的數平滑連線
尾數 m=f;
3.特殊值(即k為全為1的情況):
這種情況下又分三種特殊值:
當小數字全為0的時候,它的數值表示無窮大(小);
當小數字不全為0的時候,它表示為nan(not a number);
例項:假設有乙個用8個位來表達的ieee數,其中符號位佔1位,階碼位佔4位,小數字佔3位
0 0000 000 那麼可以得出k=4;n=3 bias=2^(k-1)-1=7;
那麼0 01001 101所表達的值可以這樣計算:
e=01001=9 -> e=e-bias=9-7=2;
f=0.101=5/8 ->(規格化)m=1+f=1+5/8=13/8;
根據公式v=(-1)^s*m*(2^e):
可得 v=1*(13/8)*2^2=6.25.
浮點數的表示
在定點數表示中存在的乙個問題是,難以表示數值很大的資料和數值很小的資料。例如,電子的質量 9 10 28克 和太陽的質量 2 1033克 相差甚遠,在定點計算機中無法直接表示,因為小數點只能固定在某乙個位置上,從而限制了資料的表示範圍。為了表示更大範圍的資料,數學上通常採用科學計數法,把資料表示成乙...
浮點數的表示
日期 2010年6月 6日 1.前幾天,我在讀一本c語言教材,有一道例題 includevoid main void 執行結果如下 num的值為 9 pfloat的值為 0.000000 num的值為 1091567616 pfloat的值為 9.000000 我很驚訝,num和 pfloat在記憶...
浮點數的表示
浮點數,是指小數點在資料中的位置可以左右移動的資料。它通常被表示成 n m re 這裡的m mantissa 被稱為浮點數的尾數,r radix 被稱為階碼的基數,e exponent 被稱為階的階碼。計算機中一般規定r為2 8或16 是乙個確定的常數,不需要在浮點數中明確表示出來。因此,要表示浮點...