複製鏈接
請複製以下鏈接發送給好友

單精度浮點數

鎖定
單精度浮點數是用來表示帶有小數部分的實數,一般用於科學計算。佔用4個字節(32位)存儲空間,包括符號位1位,階碼8位,尾數23位。其數值範圍為-3.4E38~3.4E38,單精度浮點數最多有7位十進制有效數字,單精度浮點數的指數用“E”或“e”表示。
如果某個數的有效數字位數超過7位,當把它定義為單精度變量時,超出的部分會自動四捨五入
中文名
單精度浮點數
學    科
計算機

單精度浮點數定義

單精度浮點數格式是一種計算機數據格式,在計算機存儲器中佔用4個字節(32 bits),利用“浮點”(浮動小數點)的方法,可以表示一個範圍很大的數值。
在IEEE 754-2008的定義中,32-bit base 2格式被正式稱為binary32格式。這種格式在IEEE 754-1985被定義為single,即單精度。需要注意的是,在更早的一些計算機系統中,也存在着其他4字節的浮點數格式。
單精度浮點數的長度字節,其中最高位為符號位S,中間8位表示階碼e,低23位表示尾數f。
單精度浮點數表示法規定:把一個數轉換成浮點數儲存時,整數部分保持位“1”,但這個“1”不存儲,是隱含的。因此把一個單精度浮點數轉換成真值時,需要在尾數的整數部分加一個“1”。
例如:13=1101B,將其規格化成浮點數後的結果位1.101×211,其整數部分的“1”不存儲。尾數中只存儲存小數部分的“101”。階碼部分為純整數,並用移碼錶示。在使用單精度浮點數格式表示時,階碼的偏移值為127(即1111111B)。所以採用單精度浮點數表示時,數的真值為(-1)S2e-127×(1.f) [1] 

單精度浮點數表示格式

31 30
23 22
0
S
階碼e
尾數f [1] 

單精度浮點數轉換方法

以102.25為例
  1. 將十進制數轉換成二進制數:102.25=1100110.01B
  2. 將該二進制數規格化:1100110.01=1.10011001×2110
  3. 將階碼轉換為移碼錶示:110+1111111=10000101
102.25轉換成單精度浮點數格式為
[1] 

單精度浮點數浮點數

浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的説,這個實數由一個整數定點數(即尾數)乘以某個基數(計算機中通常是2)的整數次冪得到,這種表示方法類似於基數為10的科學計數法
浮點計算是指浮點數參與的運算,這種運算通常伴隨着因為無法精確表示而進行的近似或舍入。
一個浮點數a由兩個數m和e來表示:a = m × b^e。在任意一個這樣的系統中,我們選擇一個基數b(記數系統的基)和精度p(即使用多少位來存儲)。m(即尾數)是形如±d.ddd...ddd的p位數(每一位是一個介於0到b-1之間的整數,包括0和b-1)。如果m的第一位是非0整數,m稱作規格化的。有一些描述使用一個單獨的符號位(s 代表+或者-)來表示正負,這樣m必須是正的。e是指數。 [2] 

單精度浮點數補碼

補碼(英語:2's complement)是一種用二進制表示有號數的方法,也是一種將數字的正負號變號的方式,常在計算機科學中使用。
一個數字的補碼就是將該數字作比特反相運算(即反碼),再將結果加1。在補碼系統中,一個負數就是用其對應正數的補碼來表示。
補碼系統的最大優點是可以在加法減法處理中,不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有號數加法,而且減法可以用一個數加上另一個數的補碼來表示,因此只要有加法電路及補碼電路即可完成各種有號數加法及減法,在電路設計上相當方便。
另外,補碼系統的0就只有一個表示方式,這點和反碼系統不同(在反碼系統中,0有二種表示方式),因此在判斷數字是否為0時,只要比較一次即可。
右側的表是一些8-bit補碼系統的整數。它的可表示的範圍包括-128到127,總共256(=2)個整數。 [3] 
參考資料
  • 1.    唐翔主編;劉紅玲,徐亞峯副主編.微機原理與接口技術.北京:中國鐵道出版社,2011.07:6-7
  • 2.    "6 Predefined Types and Classes". haskell.org. 20 July 2010.
  • 3.    William Kahan (1 October 1997). "Lecture Notes on the Status of IEEE Standard 754 for Binary Floating-Point Arithmetic" (PDF). p. 4.