对这四个概念进行深入的理解,希望一次学透

原码

非常简单,就是把原数字二进制化,但是第一个二进制位表示正负号,0表示正,1表示负。

但是有一个特性,它能区分 +0 和 -0

1
2
+0:00000000
-0:10000000

这个可以推测表示范围了,要注意减一

反码

通过原码得到反码,正数不变,负数二进制取反,符号位不反

反码的整数表示范围和原码一样。

补码

正数补码 = 原码

负数补码 = 反码末尾+1,考虑进位

特性:+0和-0都是 0000_0000

补码的出现是为了解决+0和-0同时存在的问题,它使得让0定义为+0,负数全都向后挪动一位,占据 全是1的-0

移码

无论正负,在补码的基础上进行符号位取反

下面是一张图

QQ截图20240327160450

详细解释了补码的过程