怎么让double转为16进制打印出来
如何让double转为16进制打印出来?
Vc++中如何将double转为16进制输出?有函数么?
例如:double -32025
输出 HEX FD16 (首位带符号)
------解决方案--------------------
1.sprintf之后解析字符串。
2.ecvt转换字符串后解析。
------解决方案--------------------
哥们,union应该满足你的要求,我没理解错的话:
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;