相关疑难解决方法(0)

如何检查C++编译器是否使用IEEE 754浮点标准

我想问一个跟随这个问题的问题,如果编译器使用标准,那么定义检查可以很好地回答这个问题.然而,这只适用于C.有没有办法在C++中做同样的事情?

我不希望将浮点类型转换为文本或使用一些非常复杂的转换函数.我只需要编译器检查.如果您知道此类兼容编译器的列表,请发布链接.我找不到.

c++ compiler-construction floating-point ieee-754

28
推荐指数
1
解决办法
1万
查看次数

关于 std::numeric_limits<T>::infinity() 的算术运算

我有一个特殊的用例,其中一些边的权double重最初设置为std::numeric_limits<double>::infinity()。这些权重将在稍后的程序执行中设置为其他值。

现在我们已经了解了背景,这是主要问题。我需要将这些边权重与我计算的某些权重的平方进行比较,并且为了考虑计算的权重的平方,我还必须对边权重进行平方。当然,这将导致初始无穷大乘以无穷大。我想知道将双精度集乘以std::numeric_limits<double>::infinity()自身是否是定义的行为。我可以期望它保持不变吗?

即使在 cppreference 上我也找不到任何文档。

c++ stl std multiplication infinity

4
推荐指数
1
解决办法
159
查看次数

0除以无穷大保证为0?

根据这个问题,n/inf预计将为零n != 0.什么时候n == 0?根据IEEE-754,(0 / inf) == 0总是如此吗?

c++ ieee-754

3
推荐指数
1
解决办法
1388
查看次数