【发布时间】:2013-10-10 00:38:37
【问题描述】:
我知道 (INT_MIN / -1) 会溢出,但 (INT_MIN % -1) 不会。至少这是在两个编译器中发生的情况,一个是 pre-c++11 (VC++ 2010),另一个是 post-c++11 GCC 4.8.1
int x = INT_MIN;
cout << x / -1 << endl;
cout << x % -1 << endl;
给予:
-2147483648
0
这个行为标准是定义的还是实现定义的? 还有其他情况会导致除法运算溢出吗? 是否存在模运算符会溢出的情况?
【问题讨论】:
标签: c++ visual-c++ c++11 integer-overflow