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 无删改 仅以此纪念陈皓(左耳朵耗子)
分享禁用 windows 更新和 windows defender 的软件
windows 更新和杀毒差不多成了月经贴, 每隔一段时间就刷到有人问, 分享一下我自用的两个软件, 希望能帮到 V 友.预览:禁用 defender: 下载前需要先关闭 de…
关于持久化的一点疑问
在很多软件中都会有持久化策略,像 redis ,rabbitmq 等。 其过程大多都是把内存中数据保存到内存中一块缓存中,顺便记录一份日志,缓存定期或定量的被另一个持久化线程写…
有时候觉得 google 付费的东西可能真的比开源的要好用太多。
首先是 immich , 备份经常卡住,我大约有 100 多 G, 经常同步到一半,就再也不同步了,然后闪退。 再试一试 nextcloud, 当我选择某个文件同步的时候,a…