对The C Programming Language 中符号与无符号比较一段话的疑惑~指点迷津。
原话如下:
当表达式中包含u n s i g n e d类型的运算分量时,转换规则要复杂一些。主要问题是,在有符号
值与无符号值之间的比较运算取决于机器,因为它们取决于各个整数类型的大小。例如,假定
i n t对象占1 6位,l o n g对象占3 2位,那么,-1L < 1U,这是因为i n t类型的- 1 U被提升为signed long
类型;但-1L > 1UL,这是因为- 1 L被提升为unsigned long类型,因此它是一个比较大的正数。
-1L < 1U 我的理解是,1U类型向-1L类型转换。变为 ,-1L < 1L 所以大
-1L > 1UL 这个就不懂了,-1L转为unsigned long,变为,1L,那1UL>1UL? 这个就不懂了。。。指点指点,,新手ING~~