二进制中的补码是一种用于表示带符号整数的编码方式,具有以下核心特性:
符号位与数值位分离 补码通过最高位(最左侧位)区分符号,0表示正数,1表示负数。其余位表示数值的绝对值。
正数与原码相同
正数的补码与其原码完全一致,无需额外处理。
负数通过取反加一得到
负数的补码是其绝对值的原码按位取反(0变1,1变0),然后加1。例如,-5的补码计算为:
$$
text{原码} 101010_2 quad text{(-5)}
text{反码} 010101_2 quad text{(取反)}
text{补码} 010110_2 quad text{(加1)}
$$。
运算简化
补码使得加法和减法统一为加法运算,无需单独处理正负数。例如,计算-5+3时,直接按补码相加:
$$
010110_2 (text{-5}) + 0011_2 (text{3}) = 100000_2 (text{-2})
$$。
补码特性
- 任意整数n的补码与-n的补码相同(如-2的补码与2的补码一致);
- 补码能表示所有整数(-2^(n-1)到2^(n-1)-1)。
应用场景:
补码是计算机算术运算的基础,广泛应用于编程语言(如C/C++、Java)和硬件设计中。