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 无删改 仅以此纪念陈皓(左耳朵耗子)
Guido 写的新 Parser 真的很好用
之前我搞了个 Python 超集,用的方式是字符串替换,很垃圾。然后我复习了一下编译原理,用 Guido 为 Python3.9 之后的版本写的 Parser 整了个新版本。 …
各位大佬,有个奇葩的技术问题
客户买了一套闭源的程序用于运营。MySQL 数据库用的是 CDB ,但是现在遇到一个问题: 因为那套程序对于数据库的优化明显不足,有一些很要命的慢查询拖慢整个库。于是,我们加了…
使用 cloudflare 代理,是不是就能隐藏源服务器 IP 了?
大佬帮忙测下这个域名的真实服务器 IP 是多少: cdn.1350.live 之前一直裸奔,我对这方面知识基本为 0 ,自己捣鼓了下。 曲线推广?😄 看看有没有你的 se…