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
2008年1月25日 星期五
Application Binary Interface (ABI)
Application Binary Interface (ABI)其實就是定義了一個標準,讓Binary code能在不同的電腦上可攜(Portability)。由基本的Instruction set加上作業系統的Interfaces組成。 (ABI)的發展,是用來促進在相同的CPU下所發展的應用程式,在不同的作業系統下,都能做到Binary Code相容。例:
同屬於 Intel x86 版本的執行檔能夠自由的在Windows NT/2k/XP之間執行。
2008年1月23日 星期三
滑鼠發明者
最早發明滑鼠是一位美國人Dr. Douglas C. Engelbart。
原始的滑鼠是電子機械式加上一個大的滾球,當它在一個平面滾動時就可以計算其位移量,再透過電子訊號傳至電腦。
然而目前的滑鼠已經被光學滑鼠所取代。光學滑鼠主要包含三個元件,LED、小型黑白照相機、簡單的光學處理器。LED會發射光束照射在平面上,照相機就會以一定的速率拍下相片,連續的相片就會送給處理器,處理器比較圖片的差異來決定滑鼠的移動。
我想,當初滑鼠的發明者,一定沒想到會變得如此普及。不過我對他講的一句話,覺得蠻有趣的。
I got the idea for the mouse while attending a talk at a computer conference. The speaker was so boring that I started daydreaming and hit upon the idea.
Douglas Engelbart
我也常作白日夢,但我為什麼想不到呢~~
訂閱:
文章 (Atom)
