C语言中为什么不能将无符号整数与有符号整数比较

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 22:11:23

C语言中为什么不能将无符号整数与有符号整数比较
C语言中为什么不能将无符号整数与有符号整数比较

C语言中为什么不能将无符号整数与有符号整数比较
不是不能比,是你未比出正确结果,两个数的区间不一样,可以内码却有可能相同,你得如此比法,例如:
int si;
unsigned int ui;
ui = si = -100;
int res = (si>31) 1 :(ui-si);
当有符号数小于0时,不用比,总是有符号的小,
当无符号数最高位为1时不用比,总是无符号位大,
有符号数不小于0而无符号数最高位不是1时才做比较,就可以得出正确结果