#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; }