一个 7 行 C 代码的运行分析

深入理解计算机操作系统第3版、练习题2.44

源程序

//#include <stdio.h>
#include "limits.h"

int fun_A(int x) {
    return (x > 0) || (x - 1) < 0;
}
int main() {
    fun_A(INT_MIN);
    return 0;
}

运行结果

32位补码域中、此表达式全为真

迷惑所在

当输入值为 INT_MIN 时,数据溢出为正数,求问为何表达式依旧运行无错?

汇编级别分析

为什么进行比较判断时、省略了 -1 的操作?

carbon.png

上一篇
CAN: 借助数据分布提升分类性能
本文将介绍一种用于分类问题的后处理技巧(Trick),出自EMNLP 2021 Findings的一篇论文《When in Doubt: Improving Classification Performance with Alternating Normalization》。经过实测,CAN(Cla ....
下一篇
【公告】「摸鱼大闯关」请勿在摸鱼派提问、回答与摸鱼大闯关关卡答案、提示有关内容
关于摸鱼大闯关 摸鱼大闯关是由 @[链接] 进行全程开发和维护的(在此感谢),它融合了密码学、CTF、逆向等元素打造的一款硬核游戏。 感谢大家喜欢这款游戏🙏,但因此我们在社区和 PWL 官方 QQ 群中发现,有很多朋友在无意中或是有意中泄露了摸鱼大闯关的关卡地址,这对摸鱼大闯关的游戏平衡性,以及排 ....
时间排序
苦逼大学生即将毕业工作开始摸鱼 鸽联网:以鸟类为载体的网际协议(IP over Avian Carriers,IPoAC) 双十一,你剁手了么 想想买 switch 游戏机入任天堂的坑,有什么建议吗? 【公告】「摸鱼大闯关」请勿在摸鱼派提问、回答与摸鱼大闯关关卡答案、提示有关内容 一个 7 行 C 代码的运行分析 CAN: 借助数据分布提升分类性能 Linux 硬盘 UUID 查看方式 【算法】一道简单算法 路由协议 【补偿公告】关于 ADR 游戏无法读取存档的问题解决方案
上一篇
Linux 硬盘 UUID 查看方式
因现在 Linux 的 /etc/fstab 文件默认挂载文件系统时,使用的都是硬盘 UUID 方式,所以如果你擅自修改了问文件系统的参数(eg:合并多个分区),有可能会导致UUID发生变化,然后如果没有进行检查确认的话会很容易导致开机无法完成文件系统的挂载 (别问我怎么知道的) . 鉴于每次都需要 ....
下一篇
阿里云主机无法启动下的完整数据恢复方案
[图片] 本站在昨天的时候因为站长的更新操作导致,内核生成失败,导致系统无法完成引导启动操作,就是在救援模式里查看也是启动失败的情况,奈何站长在更新前因为过于自信没有对磁盘进行快照操作,所以就造成了一个巨尴尬的情况: 因为没有快照,所以无法执行回滚操作,无法进入系统进行数据恢复 因为平时觉得不会出现 ....
当前作者
linux epoll 机制 Windows 11 启用 DOH (基于阿里私人免费 DNS) WSL 中 systemd 的使用指南 阿里云主机无法启动下的完整数据恢复方案 一个 7 行 C 代码的运行分析 Linux 硬盘 UUID 查看方式 公众号这个信息孤岛开始了第一次开放 「奇技淫巧」 Traefik “智能”反向代理(解放苦于配置的双手) 「奇技淫巧」Arch Linux S.M.A.R.T. 硬盘状态监控 「Linux 保命技能」SysRq 魔术键
上一篇
想想买 switch 游戏机入任天堂的坑,有什么建议吗?
想买switch好久了,但是一直没钱,这次出来实习赞了点钱想圆一下长久以来的念想,但是我对switch算小白的阶段,不知道其中的坑啊套路啊什么的,大家有什么建议吗?
下一篇
新人报道!
目前还是个在校生,专业是网安方向希望能跟大家多多交流学(mo)习(yu)心得,多多指教。 其他方面也欢迎大家交流讨论
热门排序
玩摸鱼大闯关进来的萌新 新人报道,大家好 苦逼大学生即将毕业工作开始摸鱼 双十一,你剁手了么 想想买 switch 游戏机入任天堂的坑,有什么建议吗? 一个 7 行 C 代码的运行分析 新人报道! 新人来报到啦啦啦 新人报到啦啦啦 【单身狗】就不要点进来了 一大波鱼友正在接近 A HUGE WAVE OF ZOMBIES IS APPROACHING