本博客已迁往http://coredumper.cn
如果两个操作数具有不同的类型,而且这两种类型的位宽度不同,则会将其中位宽度较小的操作数类型转换为另外一个操作数的类型。
如果这两种类型的位宽度相同,而其中一个是signed类型,另一个是unsigned类型,则会将signed类型转换为unsigned类型。需要注意的是,在进行这种类型转换时,其底层的二进制表示没有改变,仅仅是对其进行了不同的解释。
例如:
假定int类型占16位,long类型占32位,则当比较-1L和1U时,会将unsigned int类型的1U转换为signed long类型,结果为-1L<1U。
当比较-1L和1UL时,会将signed long类型的-1L转换为unsigned long类型,结果为-1L>1UL。