1. 程式人生 > >IEEE浮點表示

IEEE浮點表示

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

結果

在這裡插入圖片描述

參考資料

深入理解計算機系統(中文,原書第三版)
在這裡插入圖片描述
在這裡插入圖片描述