C ++下溢的例子?

时间:2017-01-30 22:38:04

标签: c++ underflow

我目前正在上一门C ++课程,教授给了我们以下的例子:

unsigned int TEST = -1;
cout << TEST;

现在,在他的机器上,TEST作为整数的最大值返回,因为他强制下溢。但是在我的机器上,它返回为0。

此行为编译器是依赖还是其他?换句话说,为什么我的机器返回0但他的机器返回最大值?

1 个答案:

答案 0 :(得分:6)

  

此行为依赖于编译器

没有。它是平台相关的,因为unsigned int的最大值可能因平台而异。但是所有符合标准的编译器都会显示unsigned int所代表的最大值 - 永远不会为0。

  

为什么我的机器返回0但是他的机器返回最大值?

有两种可能的选择:这不是在您的机器上产生输出的程序,或者是您机器上的编译器被禁止的。