查看: 1753|回复: 0
打印 上一主题 下一主题

-1和1的数值比较 [小题目]

[复制链接]
跳转到指定楼层
沙发
发表于 2015-1-7 13:00:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表