浮點數如何在計算機中表示
乾坤有數
根據ieee 754標準,浮點數的表示形式如下:
其中,s為數的符號位,為0時表示正數,為1時表示負數;p為階碼,通常用移碼表示;m為尾數,用原碼表示。目前,計算機中主要使用三種形式的ieee 754浮點數,如下表所示
在ieee 754標準中,約定小數點左邊隱含有一位,通常這位數就是1,因此單精度浮點數尾數的有效位數為24位,即尾數為1.xx...x。
下面利用ieee 754標準將數176.0625表示為單精度浮點數:
第一步,將176.0625表示為二進位制數,即(176.0625)
10 = (10110000.0001)
21. 整數轉化為二進位制
176/2=88...0(餘數)
88/2 =44...0
44/2 =22...0
22/2 =11...0
11/2 =5 ...1
5/2
=2 ...1
2/2
=1 ...0
1/2
=0 ...1
將餘數按從下往上的順序書寫就是:10110000
2.小數部分轉化為二進位制
0.0625*2=0.125...0(整數)
0.125*2 =0.25 ...0
0.25*2
=0.5
...0
0.5*2
=1.0
...1
將整數按從上往下的順序書寫就是:0001
第二步,對二進位制數進行規格化處理,即10110000.0001 = 1*01100000001x2^7(*為小數點所在位置,在計算
機中只取小數點後面的位存入尾數區)
第三步,將最高位去掉,並擴充套件為單精度浮點數所規定的23位尾數,得到尾數01100000001000000000000
第四步,求階碼,上述表示中指數為7(即第二步中的7),用移碼表示為10000110(7+127=134,127為偏移量)
第五步,將符號位、階碼與尾數合併起來,最終得到176.0625的表示形式
0 10000110 01100000001000000000000(其中空格是為了方便**)
參考文獻
1.張淑平. 程式設計師教程[m]. 北京:清華大學出版社,2009.
計算機中浮點數的表示
浮點數就是有小數點的數。在c語言中有三種浮點數,分別為float,double和long double。下面分析一下其實現。include int main int argc,char argv 這是乙個簡單的c語言程式,定義了三個不同型別的變數a b c。編譯後用gdb除錯下 gdb p size...
計算機中浮點數的表示
在c語言中浮點數有兩個size,32位和64位。其中32位浮點數 第1位是signflag 符號位 2 9位是階碼位 exponent 10 32位是尾數字 significand 64位分別是第1位,2 12位,13 64位。浮點數大小的公式是 x 1 2 e m e exp 2 1 將 exp ...
浮點數在計算機中的表示
浮點數在計算機中的表示 最後編輯於 2010 4 13 計算機中數字是以0和1二進位制儲存的,我們熟悉的是整數的如何在計算機中表示,那麼浮點數是如何表示的呢?一 轉換 我們先來看看如何將十進位制的浮點數轉換成二進位制。乙個十進位制的浮點數,例如 abcd.efg 其中a g為0.9 其值用多項式為 ...