繁体   English   中英

C ++中整数类型的正无穷大

[英]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 valueinfinity value不是真的?

整数始终是有限的。

通过将整数设置为其最大值,可以最接近所需的值,对于带符号整数,最大值约为20亿。

std :: numeric_limits具有has_infinity成员,您可以使用该成员检查所需的类型是否具有无限表示形式,该表示形式通常仅针对浮点数,例如float和double。

浮点数具有一个特殊的位模式,以指示“值是无穷大”,当某些运算的结果定义为无穷大时使用。

整数值具有设置的位数,并且所有位均用于表示数字值。 没有“特殊位模式”,这与位位置的总和无关。

编辑:在我的《 AMD64体系结构程序员手册》的精装本第315页上,它说

无穷。 无穷大是一个正数或负数+∞和-∞,其中整数位为1,有偏指数为最大值,分数为0。无穷大是可以浮点格式表示的最大值,负无穷小大于任何有限数,并且正无穷大大于任何有限数(即仿射感)。

当将非零,非无限数除以0或乘以无穷大,或者将无穷大加到无穷大或加到0时,就会产生无限大结果。 例如,将任何浮点数加到+∞都会得到+∞的结果。算术比较在无限上正确工作。 仅当使用无穷大作为源操作数构成无效操作时,才会发生异常。

(任何打字错误都是我的)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM