-
單精度浮點數
鎖定
- 中文名
- 單精度浮點數
- 學 科
- 計算機
單精度浮點數定義
單精度浮點數格式是一種計算機數據格式,在計算機存儲器中佔用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 |
單精度浮點數轉換方法
以102.25為例
- 將十進制數轉換成二進制數:102.25=1100110.01B
- 將該二進制數規格化:1100110.01=1.10011001×2110
- 將階碼轉換為移碼錶示:110+1111111=10000101
102.25轉換成單精度浮點數格式為
單精度浮點數浮點數
浮點數是屬於有理數中某特定子集的數的數字表示,在計算機中用以近似表示任意某個實數。具體的説,這個實數由一個整數或定點數(即尾數)乘以某個基數(計算機中通常是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)是一種用二進制表示有號數的方法,也是一種將數字的正負號變號的方式,常在計算機科學中使用。
補碼系統的最大優點是可以在加法或減法處理中,不需因為數字的正負而使用不同的計算方式。只要一種加法電路就可以處理各種有號數加法,而且減法可以用一個數加上另一個數的補碼來表示,因此只要有加法電路及補碼電路即可完成各種有號數加法及減法,在電路設計上相當方便。
另外,補碼系統的0就只有一個表示方式,這點和反碼系統不同(在反碼系統中,0有二種表示方式),因此在判斷數字是否為0時,只要比較一次即可。