您的位置:首页 > 其它

关于无符号数的减法为负值

2016-02-22 09:59 507 查看
#include <iostream>
using namespace std;

int main()
{
unsigned int u1 = 42, u2 = 10;
cout << u1 - u2 << endl;
cout << u2 - u1 << endl;
return 0;
}

上面的输出结果为:

32

4294967264

显然下面的结果是-32与16位整数取模后的值。

这样理解:两个无符号数相减后,类型依然为无符号类型,然后将其输出。

注意for循环时条件里面的变量不要用无符号类型,否则可能会造成死循环。

#include <iostream>
using namespace std;

int main()
{
for (unsigned i = 10; i >= 0; i++) //死循环
cout << i;
cout << endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: