C语言中无符号数和有符号数之间的运算
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。