1

C++ 对溢出有什么作用?Java 对溢出有什么作用?

当 C++ 出现溢出错误时,我认为它会转到尽可能小的数字并从那里添加,但我不确定。不知道java是怎么处理这个问题的?

4

2 回答 2

0

在 C++ 标准的 n3242 中

5 表达式 [expr]

第 5.4 段:

如果在计算表达式期间,结果未在数学上定义或不在其类型的可表示值范围内,则行为未定义。[注意:大多数现有的 C++ 实现忽略整数溢出。除以零的处理,使用零除数形成余数,所有浮点异常因机器而异,通常可以通过库函数进行调整。——尾注]"

来自 OP

当 C++ 出现溢出错误时,我认为它会转到尽可能小的数字并从那里添加

不,有时只是这样。

于 2012-05-21T21:37:28.907 回答
0

就 java 中的整数加法而言,溢出行为由JLS #15.18.2定义:

如果整数加法溢出,则结果是数学和的低位,以一些足够大的二进制补码格式表示。如果发生溢出,则结果的符号与两个操作数值的数学和的符号不同。

于 2012-05-21T21:42:35.267 回答