embedded linux ,android

2010年12月2日 星期四

浮點數表示法

單精度浮點數表示法用來表示 "實數"

所謂實數,就是有小數部分的數值
所謂浮點數,是因為在將數值表示成0與1過程中,小數點會 "位移" 的關係
所謂單精度,是因為還有另一種叫做 "雙精度" 範圍更大

單精度表示法使用32個位元, 編號 31~0
最高位元(31)為符號位元,0為正,1為負
指數部分8位元 (30-23),以 "超127" 表示
剩下皆為假數部分即正規化後小數點之後的數字
即 符號(1) + 指數(8) + 假數(23)

float a=1.0f = + (1.0)b * 2^0

正數所以符號位元為0
指數0+127 即 0111 1111
假數 000 0000 0000 0000 0000 0000

所以 1.0 在記憶體的表現為 0011 1111 1000 0000 0000 0000 0000 0000
即 0x3f800000

沒有留言:

張貼留言