中科因仑“3+1”工程特种兵精英论坛

标题: -1和1的数值比较 [小题目] [打印本页]

作者: 等待苍老的谁    时间: 2015-1-7 13:00
标题: -1和1的数值比较 [小题目]
  1. int main()
  2. {
  3.     if(-1L > 1UL)
  4.         printf("1\n");
  5.     else
  6.         printf("0\n");
  7.     return 0;
  8. }
复制代码
运算结果-刮刮乐请刮开(或者Ctrl+a):常量后面接L表示long型存储,U表示unsigned,F表示float

此题的关键是 -1L > 1UL

一个是long型,一个是unsigned long型,无符号和有符号的比较,那么编译器会把有符号的转换为无符号。
-1L = 0xFFFFFFFF
1UL = 0x00000001

因为 0xFFFFFFFF > 0x00000001 ,所以 -1L > 1UL

运行结果为:打印1






欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4