您的位置:首页 > 其它

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

2017-06-17 11:42 204 查看
分析下面的代码,求运行结果

int main()

{  

 if(-1L > 1UL)

   
   printf("1\n");

 
  else

   
   printf("0\n");

 
  return 0;

}

参考答案:

常量后面接L表示long型存储,U表示unsigned,F表示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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: