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 无删改 仅以此纪念陈皓(左耳朵耗子)
做个调查:大家在日常工作中会实际用到 UML 吗?
什么类图、状态图、部署图 balabala ,反正我司是没见到大家在设计文档中画标准 UML 图的,你们会用吗? 我之前会让新来的就当前我们项目中一个模块画个顺序图,算是试…
Uni-App 这次要怎么解释,脑壳疼
今天全司所有使用 Uni-App 的 iOS 应用全闪退。 分析下来开了面容识别并联网就会闪退,怀疑是 uni-app 存在私自窃取用户信息的情况。 不区分 iOS 版本,14…
2023 年微信在 Linux 下的优雅使用方式有答案了吗
首先问候一下张小龙 目前在用 AUR 里的 electronic-wechat-uos-bin ,晚上微信突然被登出,需要同意一堆和认罪协议一样东西才能重新登录。由于在用的是工…
合速度