IEEE 754定義了浮點數的表示方法,目前也廣泛被使用。IEEE有四種格式來表示浮點數:
Single-precision (32-bit)
Double-precision (64-bit)
Single-extended precision (≥ 43-bit)
Double-extended precision (≥ 79-bit)
常用的為Single-precision和Double-precision,以下就介紹這兩種表示方法
IEEE 754浮點數表示型式,有三個欄位,分別是sign、exponent、fraction,如下圖:
Sign:一個bit,1為負數,0為正數
Exponent:指數部份
Fraction:小數部份
Single-precision的Exponent為8 bits、Fraction為23 bits
Double-precision的Exponent為11 bits、Fraction為52 bits
為了讓指數部份,可以調到最負的指數能為00....002和最正的指數為11..112,所以指數都要加一個偏移值。Single-precision的偏移值為127,Double-precision的偏移值為1023。將實際的指數加上偏移值才是真正填入Exponent欄位的值。
為了讓fraction能用更多的bit來表示,fraction已隱含開頭的1(Leading 1),所以浮點數要用IEEE 754格式,必須先做正規化,讓開頭為1。
下面就舉簡單的例子 (以Single-precision為例):
將十進位-0.75用IEEE 754 single-precision來表示
首先將-0.75轉換成二進位
-0.11
正規化,讓開頭為1
-1.1 x 2^-1
計算exponent的值,將-1加上偏移值127
Exponent = -1 + 127 = 126
所以我們就得到這三個欄位的值:
負數,所以Sign = 1
Exponent = 12610 = 011111102
Fraction = 1
整個表示出來如下:
1 01111110 10000000000000000000000
2008年1月29日 星期二
IEEE 754
張貼者:
Howard
於
上午10:46
訂閱:
張貼留言 (Atom)
4 意見:
真是感謝查到你介紹IEEE754的文章~我在課堂上剛好卡在這裡不是很了解~看到你的解說都懂了~謝謝囉!!!
很高興能幫助到你~~~
很開心能看到你的文章 希望你能發表更多更多
恩,我會盡量把一些所學會的東西多和大家分享,順便也可以幫助自己記憶。
張貼留言