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 版再问问,有什么可以和其他人同步听歌的方案吗
歌单是 YouTube 上的播放列表,其他人不一定能科学,所以需要自建(有 HomeLab ,可以接受下载到本地再播放)或者国内中转的方案 Jellyfin 有这个功能,不…
我们需要专职的QA吗?
这个文章必然是有争议的,我在我的微博上讨论过很多次了,每次都是很有争议的。有不同的观点,有争论总是一件好事,这样可以引发大家的思考。所以,对于我的这篇博文,如果你赞同我的观点,…
有什么适合程序员吃的保健品嘛🤣
最近感觉状态有点差: 睡眠质量太差,反复醒来 发质变得很干毛糙 踢球时以往的爆发力不在了 ...也有在健身,或许我焦虑了 1 褪黑素。 2 维生素 C ,维生素 B 。 …