C语言中无符号数和有符号数之间的运算

- unsigned int和int进行运算(包括比较比较大小)

int类型的数会强制转换成unsigned int 的数再进行计算, 最后的结果也是unsigned int

- unsigned char和char进行运算(包括比较大小)

这个比较特殊,unsigned char 和 char 都会先转换成int类型在进行计算。
如果是unsigned的类型转换成int类型,高位补0.
如果是signed的类型转换成int类型,如果原来最高位是1则补1,如果是0则补0。

参考:https://www.cnblogs.com/qingergege/p/7507533.html