怎么让double转为16进制打印出来

如何让double转为16进制打印出来?
Vc++中如何将double转为16进制输出?有函数么?
例如:double -32025
输出 HEX FD16 (首位带符号)

------解决方案--------------------
1.sprintf之后解析字符串。
2.ecvt转换字符串后解析。
------解决方案--------------------
哥们,union应该满足你的要求,我没理解错的话:
C/C++ code
union HEXDOUBLE
{
double dNum;
unsigned char[8] iNum;
};
union HEXDOUBLE a;
a.dNum =  -32025;
for (int i = 0;  i < 8; ++i)//根据你当前机器的大小端进行打印顺序调整,我这个对应的大端的情况
cout << hex << (unsigned int)a.iNum[i]  << " " ;
cout << endl;

------解决方案--------------------
double d=3025.0;
unsigned char *p;
p=(unsigned char *)&d;
printf("%02X%02X%02X%02X\n",p[0],p[1],p[2],p[3]);
------解决方案--------------------
-32025怎么转成FD16的?
想直接输出double的16进制可以用
C/C++ code
double x = -32025;
cout << hex << *((unsigned long long*)&x) << endl;