3

正如标题所说,我所追求的功能是由 C++11 的数学库提供的,用于查找指向特定值的下一个浮点值。

除了将代码从 std 库中提取出来(我可能不得不求助)之外,还有什么替代方法可以使用 C++03(使用 GCC 4.4.6)来做到这一点?

4

1 回答 1

3

依赖于平台,假设 IEEE754 和模字​​节序,您可以将浮点数的数据存储在一个整数中,加一,然后检索结果:

float input = 3.15;

uint32_t tmp;

unsigned char * p = reinterpret_cast<unsigned char *>(&tmp);
unsigned char * q = reinterpret_cast<unsigned char *>(&input);

p[0] = q[0]; p[1] = q[1]; p[2] = q[2]; p[3] = q[3];  // endianness?!

++tmp;

q[0] = p[0]; q[1] = p[1]; q[2] = p[2]; q[3] = p[3];

return input;

当然,要小心零、NaN 和无穷大。

于 2013-05-02T10:45:08.850 回答