二进制表示分为两种:有符号数和无符号数
原码,反码,补码是对有符号数来说的(最高位是符号位,0表示正数,1表示负数),而且得确定是用几位二进制下的原码,反码,补码。(以下说明中的例子都是4位二进制下)
对正数而言:原码,反码,补码都是一样的,十进制的3原码反码补码都是 0011。
对负数而言:原码是其本身,比如 -3 的原码是1011;
反码是原码符号位不变,其余各位取反(即1变0,0变1),比如 -3 的反码是 1100;
补码是反码末位加1, 比如 -3 的补码是 1101;
说明:事先说清楚多少位二进制是必要的。比如4位二进制的 -3 是1011,八位二进制的 -3 是10000011,是不一样的。其余的反码补码情况是一样的。
理解: 补码是因为计算机中没有减法,减法是按照加法来做的。7-3是按照7+(-3)做的。深究可见其他大神的博客,此篇只做简单说明。