IEEE浮點表示
阿新 • • 發佈:2018-11-25
IEEE浮點表示
觀察IEEE浮點表示
工作中遇到過整型轉浮點型(union那種轉換),碰到就看下書,過後就遺忘了。等過段時間又出現此現象,又重新拿起書本,這次記錄了過程。然而一直等到今天才寫出來,以防以後還用到,如果能幫助到你就更好了。
測試程式碼
double uu2double(unsigned word0, unsigned word1)
{
union
{
double d;
unsigned u[2];
} temp;
temp.u[0] = word0;
temp.u[1] = word1;
return temp.d;
}
思路
1,3(小端模式) //unsigned 4位元組 // u[1] u[0] 00 00 00 03 00 00 00 01 //double 8位元組 //d 0000 0000 0000 0000 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0001 //IEEE 浮點表示 /* V = (-1)^s * M * 2^E 符號(sign) 負數(s=1)、正數(s=0) 規格化的值(階碼域exp不全是0,也不全是1): E = e-Bias(2^(k-1)-1 單精度127,雙精度1023),M = 1+f 非規格化的值(階碼域exp全是0): E = 1-Bias(2^(k-1)-1 單精度127,雙精度1023),M = f */ //符號s 階碼exp 尾數f 0 00000000000 0000 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0001 非規格化 V = {2^(1-1023)*[(2^32+2^31+2^0)/(2^52)]} = 6.365987373390e-314#DEN
結果
參考資料
深入理解計算機系統(中文,原書第三版)