笔者在英文资料中见到1’s Complement Code和2’s Complement Code乍一看直译都是补码,按补码理解又搞的一头雾水,其实他们是有区别的。这篇文章帮你彻底理解什么是1’s Complement Code和2’s Complement Code
True Form
:原码,是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。为了便于ALU进行运算,又发展出反码、补码等转换过的码。特别的:正数的原码 = 反码 = 补码。引进补码的作用是为了让计算机更方便做减法。
补充: 二进制数的运算方法
Complement Code 的形式有2种:
1's Complement Code 1的补码
:常翻译为 反码。
多用在IP、TCP的checksum校验和中。
计算方法:
- 正数的反码与原码相同
- 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反2's Complement Code 2的补码
:常翻译为