编辑
2026-04-01
undefined
00

目录

原码
反码
补码

原码

原码是十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。

最大值127的原码为0111 1111

最小值-127原码为1111 1111

利用原码对正数进行计算不会有问题,但如果是对负数计算,结果就出错。

1000 0000 -0 + 0000 0001 +1 ----------- 1000 0001 -1(正确值:+1)

反码

为了解决原码不能计算负数的问题,出现了反码。

正数的反码不变,负数的反码符号位不变,其余位取反,0变1,1变0。 十进制数字原码反码补码+00000 00000000 00000000 0000-01000 00001111 11110000 0000-11000 00011111 11101111 1111-21000 00101111 11011111 1110............-1271111 11111000 00001000 0001-128无无1000 0000 反码也有弊端,在进行负数计算的时候,如果结果不跨0,是没有问题的,但是如果结果跨0,跟实际结果会有1的偏差。

1111 1101 -2 | 1111 1101 -2 + 0000 0010 +2 | + 0000 0011 +3 ----------- | --------- 1111 1111 -0 | 0000 0000 +0(正确值:+1)

补码

虽然+0和-0是一样的,但0带符号没有任何意义,而且会有两个反码表示0。于是补码的出现,解决了0的符号以及两个编码的问题,解决了负数计算跨0的问题。

正数的补码不变,负数的补码在其反码的基础上+1。补码能多记录一个特殊值-128,该数据在1个字节下,没有原码和反码。

计算机中的存储和计算都是以补码的形式进行的。

本文作者:a

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!