请注意在C和C++中,在整数的双目运算符中,如果两个整数数据的符号类型不一致,那么在运算时会转换成无符号进行运算。即原先有符号的会转换成无符号的进行运算。
举例:
uint32_t a = 10;
int32_t b = -1;
if(a > b){
printf("a > b");
}else{
printf("a < b");
}
以上程序运算结果是 “a < b”
如果将转换成无符号数据则为:0xFFFFFFFF,即-1的补码,故a < b.