C 语言整型谜题
如题,此篇文章是描述C语言中的整数谜题。
假定机器字长是32位的,用2的补码表示整数。对以下C表达式,请问它们在所有情况下都正确吗?如果不是,请给出反例。
初始化:
int x = foo();
int y = bar();
unsigned ux = x;
unsigned uy = y;
1. 若x < 0, 则x * 2 < 0
2. ux >= 0
3. 若x & 7 == 7, 则(x << 30) < 0
4. ux > -1
5. 若x > y, 则-x < -y
6. x * x >= 0
7. 若x > 0 && y > 0, 则x + y > 0
8. 若x >= 0, 则-x <= 0
9. 若x <= 0, 则-x >= 0
答案如下:
1. 错。当x = INT_MIN
2. 正确。
3. 正确。
4. 错。-1被转换成UINT_MAX
5. 错。当x = -1, y = INT_MIN
6. 错。当x = 65535
7. 错。INT_MAX 和 INT_MAX
8. 正确。
9. 错。INT_MIN
转载于酷壳CoolShell 无删改 仅以此纪念陈皓(左耳朵耗子)
为什么在中国访问 Google, Google 栏里没有 Gmail?
这东西叫Google 栏 自己拖出来就是了。这个图标可以拖动。 你的路线有瑕疵,建议更换 #1 没有 Gmail ,我怎么拖? ![Google 栏动图]( "Goo…
Go 后端想学习 Web3,该如何入手?
最近转 go ,看到了区块链或者 web3 技术,想深入学一下。 想请教一下前辈们,纯萌新小白的成长路线是什么? 从理论到实践有哪些书籍或者视频呢? 看完后能了解到一个什么深度…
在 Java 中为什么不全部使用 static 方法?
为什么不能全部用 static 快进到全民面向过程编程(误 因为 java 是面向对象的, 比如我有个猫类, 里面有个喵喵叫方法. 你要写成全局静态的, 然后给狗狗调用嘛? …