原码是最直观的二进制表示,最高位作为符号位,能直接看出正负,但存在正负两个 0 且不能直接做减法;反码作为过渡编码,正数与原码相同,负数保持符号位不变、数值位取反,依旧存在两个 0,无法直接运算;补码是计算机实际存储和运算使用的编码,正数的补码等于原码,负数为反码加 1,消除了正负 0 的问题,可将减法转换为加法,简化硬件设计,8 位补码还能多表示一个负数 - 128,三者区别主要体现在 0 的表示和运算能力上。