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 无删改 仅以此纪念陈皓(左耳朵耗子)
诸位对“好的代码就是要注释比代码还多”这句话怎么看?
高手的好的代码是自注释的 如果做不到,那就多写点注释吧 这话是对普通人说的,,牛逼的人写出来的,代码就是注释 自己也需要写注释给几分钟后的自己看 某种意义上说没错,但…
新硬盘顺序读取速度异常
刚买的威联通 NAS 和一块京东自营的希捷 16T 硬盘和淘宝南京总代的西数 16T 硬盘,刚才发现在 nas 系统里面,两块盘速度相差特别大,新手小白不知道这是否正常,淘宝店…
ASP.NET Core 在路由器等 CPU 极差 内存极小的嵌入式设备上性能(并发)表现怎么样?
根本跑不起来吧 参考 java, 本质上就是一优化过的 java Asp.net 不支持 aot 也不能裁剪 hello world 就得几百兆。 你这个需求用 go …