我想要做的是将一个双精度浮点数转换成十六进制字符串,然后再将其转回双精度浮点数。
以下代码实现了从双精度浮点数到十六进制字符串的转换。
以下代码实现了从双精度浮点数到十六进制字符串的转换。
char * double2HexString(double a)
{
char *buf = new char[17]; // double is 8-byte long, so we have 2*8 + terminating \0
char *d2c;
d2c = (char *) &a;
char *n = buf;
int i;
for(i = 0; i < 8; i++)
{
sprintf(n, "%02X", *d2c++);
n += 2;
}
*(n) = '\0';
}
这似乎可行,但我不确定如何将结果字符串转换回double类型。请给予建议:)