首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-04-24 
如何让double转为16进制打印出来?Vc++中如何将double转为16进制输出?有函数么?例如:double -32025输出 HEX

如何让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; 

热点排行