【每日一题】  -1和1的数值比较

来源:互联网 发布:淘宝积分有什么用处 编辑:程序博客网 时间:2024/06/04 18:53

分析下面的代码,求运行结果

int main()

{  

 if(-1L 1UL)

      printf("1\n");

   else

      printf("0\n");

   return 0;

}



参考答案:

常量后面接L表示long型存储,U表示unsignedF表示float

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

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

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

运行结果为:打印
1


注:此博文来自http://www.vcan123.com/forum.php?mod=viewthread&tid=1932&extra=page=1

阅读全文
0 0
原创粉丝点击