无穷大与 NAN 值
Infinity vs NAN values
我注意到无穷大和NAN表示的浮点值有所不同。这是否在标准中指定了某些内容?
#include <cmath>
#include <iostream>
#include <limits>
#include <stdint.h>
union Double
{
double value;
uint64_t repr;
};
int main()
{
Double d;
d.value = std::numeric_limits<double>::infinity();
std::cout << std::hex << "inf: " << d.repr << std::endl;
d.value = std::numeric_limits<double>::quiet_NaN();
std::cout << std::hex << "NAN: " << d.repr << std::endl;
return 0;
}
Ouput:
inf: 0x7ff0000000000000
NAN: 0x7ff8000000000000
我注意到无穷大和 NAN 表示的浮点值有所不同。
是的,这并不奇怪。这些值不同,因此它们的表示形式也应不同。
这是否在标准中指定了某些内容?
在C++标准中?不。
在某些浮点标准中,如 IEEE-754?是的。
注意:在C++中,您的联合技巧具有未定义的行为。请改用memcpy
。
相关文章:
- g++的分段错误(在NaN上使用to_string两次时)
- 输出是NaN,如何
- 为什么我在输出端得到 nan?
- 提升反序列化对象具有 nan 或 -nan 值
- Is !NaN not a NaN?
- NaN 上的宇宙飞船操作员
- C++ STL 排序会检查 NaN 吗?
- C++ 每次运行程序时我都会"nan"输出的问题
- 无穷大而循环时具有递归函数
- 在C++中比较无穷大和无穷大
- 复制 -nan 表示浮点数,AVX __m256 复制后显示 0
- 如何使用 Node-addon-API 实现 node-nan 回调
- 为什么我的双变量通过添加 c++ 显示 nan?
- nan() 函数的参数
- 为什么 acos() 在使用点积的结果时会导致"nan(ind)"?
- 如何在 c++ 中处理 -nan 输出
- 为什么这段代码返回 -nan(ind)?C++
- Pybind11+nan节点模块冲突
- 无穷大与 NAN 值
- 是否可以使用输入流读取无穷大或NaN值