-
浮點表示法
鎖定
- 中文名
- 浮點表示法
- 外文名
- Floating point representation
- 應用領域
- 計算機領域
目錄
- 1 簡介
- 2 移碼
- 3 格式
- 4 計算機中浮點數的表示
浮點表示法簡介
float規格float共計32位,4字節由最高到最低位分別是第31、30、29、……、0位,則:31位是符號位,1表示該數為負,0表示為正。30-23位,一共8位是指數位。22-0位,一共23位是尾數位。3、轉換例子按照IEEE浮點數表示法,將float型浮點數123456.0f轉換為二進制(注:這裏的f表示浮點數,為十進制數,不是表示16十六進制)。處理不帶小數的浮點數時,直接將整數部轉化為二進制表示:11110001001000000也可以這樣表示:11110001001000000.0然後將小數點向左移,一直移到離最高位只有1位:1.11100010010000000共左移了16位,所以原數就等於:1.11100010010000000*(2^16)。 可知尾數為1。
[1]
浮點表示法移碼
移碼是一種專門用於浮點數階碼錶示的碼制採用這種表示方法可以更方便地比較兩數階碼的大小
其定義式為([x]為x的移碼):
[x]=2^m+x
浮點數格式:先將數寫成一種指數形式,
N=±R^E*M
浮點表示法格式
(EfE1E2E3E4E5E6E7MfM1M2M3M4M5M6M7)
其中Ef到E7這部分叫做階碼,用移碼錶示,Ef是階符,
Mf到M7稱作尾數,用補碼錶示,Mf為數符,
小數點的位置在Mf後面
例如,原數為-1101.110101000100...0如果用上述32位表示
則-1101.110101000100...0=-0.1101110101000100...0*2^4
4=0000100,其移碼=2^7+0000100=10000100
Mf為1,M1後為1101110101000100...,不足23位後的空位置用0補夠
浮點表示法計算機中浮點數的表示
我們知道需要把十進制數轉換為二進制數進行存儲表示,整數轉換為二進制很簡單,也不會有什麼誤差。那麼當我們要表示的是浮點數又是什麼樣的呢? 在浮點數中,只有少量的數可以用這種方法精確的表示出來,而絕大多數是無法精確表示的。舉一個簡單的例子:
3.14159 我們直接對它進行轉換,則為11.0010010000111111001⋯
1 .BCD 代碼
2 . 階碼尾數表示法
3 . 我們可以把第二種方法改造一下,就能得到一種更好的方法先把一個浮點數的小數點移到最後,用N=M×RC 表示,R=10,然後再把M 轉換為二進制B,再用C 做階碼,B 做尾數用階碼尾數法表示。
例如: 3.14159=314159×10- 5
314159 用二進制表示為1001100101100101111
幾種方法的比較:
1. 直接將浮點數轉換為二進制方法無法精確表示。
2.BCD 碼錶示方便易懂,但不能充分利用空間。