[英]positive and negative infinity for integral types in c++
我正在阅读有关c ++中正负无穷大的信息。
我读到整数类型没有无限值,即。 std::numeric_limits<int>::infinity();
将无法工作,但std::numeric_limits<int>::max();
将起作用,并将代表可以由整数类型表示的最大可能值。
所以std::numeric_limits<int>::max();
整数类型的positive infinite limit
整数可以看作是它的positive infinite limit
?
还是整数类型只有max value
而infinity value
不是真的?
整数始终是有限的。
通过将整数设置为其最大值,可以最接近所需的值,对于带符号整数,最大值约为20亿。
std :: numeric_limits具有has_infinity成员,您可以使用该成员检查所需的类型是否具有无限表示形式,该表示形式通常仅针对浮点数,例如float和double。
浮点数具有一个特殊的位模式,以指示“值是无穷大”,当某些运算的结果定义为无穷大时使用。
整数值具有设置的位数,并且所有位均用于表示数字值。 没有“特殊位模式”,这与位位置的总和无关。
编辑:在我的《 AMD64体系结构程序员手册》的精装本第315页上,它说
无穷。 无穷大是一个正数或负数+∞和-∞,其中整数位为1,有偏指数为最大值,分数为0。无穷大是可以浮点格式表示的最大值,负无穷小大于任何有限数,并且正无穷大大于任何有限数(即仿射感)。
当将非零,非无限数除以0或乘以无穷大,或者将无穷大加到无穷大或加到0时,就会产生无限大结果。 例如,将任何浮点数加到+∞都会得到+∞的结果。算术比较在无限上正确工作。 仅当使用无穷大作为源操作数构成无效操作时,才会发生异常。
(任何打字错误都是我的)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.