当int和unsigned int运算时,要将int转化为unsigned int,而int小于0,根据补码原则(自行百度补码),int强制转换为unsigned int,而int的最高位为符号位,也就是1,转换成unsigned int 后 由于unsigned int为正数,所以会转换成一个很大的正数,所以int -1 转成unsigned int时为很大的正数.
int main()
{
int i = -1;
unsigned int a = 3;
if (i < a) { cout << "i<a" << endl; }
if (i == a) { cout << "i==a" << endl; }
if (i > a) { cout << "i>a" << endl; }
a = i;
cout << a << endl;
return 0;
}
原文链接:https://blog.csdn.net/shaohuiyang/article/details/77606651