4.数据溢出
void main() {
int a = 0xffffffff;
if (a < 0) {
a = -a;
}
cout << a;
}
本想取a的相反数,但取反后溢出,输出为1;int的范围是-2147483648~2147483647,如果对-2147483648取反之后得到的数将是溢出之后的1。
//正确代码
void main() {
int a = 0xffffffff;
if(a == 0xffffffff){
cout << a;
}
else if (a < 0) {
a = -a;
}
cout << a;
}