二进制

原码、反码和补码

机器数

与普通二进制数不同,最高位作为符号位,1表示负数,0表示正数,其余位数表示真值。

原码

原码就是用第一位表示符号,其余位表示值。比如如果是8位二进制:
原码

反码

反码的表示方法是:
正数的反码是其本身;
负数的反码是在其原码的基础上,符号位不变,其余各位取反。
反码

补码

补码的表示方法是:
正数的反码是其本身;
负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)
补码

既然原码才是被人脑直接识别并用于计算表示方式,为何还会有反码和补码呢?

1.电脑计算减法是转换成加法进行计算,且符号位参与到计算中。但是:
屏幕截图 2026-05-12 212558
2.所以为了解决减法转换加法错误的问题,反码出现了。但是:
屏幕截图 2026-05-12 211326
3.为了解决-0的问题,出现了补码。并把-0的编码作为数字范围内的最小值,所以数字范围增加了一个。
8位机器数能表示的数据范围:-128~127
32位机器数能表示的数据范围:-2147483648~2147483647

posted @ 2026-05-12 22:04  andy_qwertyuiop  阅读(19)  评论(0)    收藏  举报