这套练习围绕 CS:APP Data Lab 的前 9 道整数题,练习补码、位运算和整数边界。 每题都需要补全一个 C 函数。题目会检查函数行为;合法操作符和操作数上限列在题目说明中,完成后请自行检查是否符合要求。
题目顺序:
bitXor:只用~和&实现异或tmin:构造最小的 32 位补码整数isTmax:判断是否为最大的 32 位补码整数allOddBits:检查所有奇数编号位是否为 1negate:用补码表示取相反数isAsciiDigit:判断整数是否是 ASCII 数字字符编码conditional:实现条件选择isLessOrEqual:判断整数大小关系logicalNeg:不使用逻辑非运算符实现逻辑非
开始前先读对应题目的 README.md,然后运行:
clings常用命令:
clings list
clings hint
clings tests 01_bitXor
clings check 01_bitXor
clings check
clings score --json公开测试用于快速反馈,不等于对所有输入的完整证明。请特别检查题目要求的边界值和代码限制。
环境要求:
作为过来人,我们强烈推荐你使用 Linux 作为开发环境;对于 Windows 玩家,最好的选择是 WSL。Windows 的包管理始终是相当难评的一个点,FUCK MICROSOFT。
一键安装:
对于 Linux / WSL Ubuntu:
sudo apt update && sudo apt install -y build-essential
bash setup.sh
source "$HOME/.local/bin/env"对于 macOS(没有 apt,先装 Xcode Command Line Tools):
xcode-select --install
bash setup.sh
source "$HOME/.local/bin/env"这样你就完成了:安装依赖并运行 clings doctor 自检。
看到 compiler smoke test: ok 就说明环境正常,可以开始 coding 了。