- robin 的博客
第一章计算机基础知识 第7节原码、反码和补码
- @ 2025-6-24 15:55:07
第7节原码、反码和补码

原码、反码和补码表示
原码、反码、补码是计算机存储一个具体数字的编码方式。数值在计算机中是以补码的方式存储的。
数的定点表示和浮点表示
一、机器数和真值
在学习原码、反码和补码之前,需要先了解机器数和真值的概念。
- 机器数 一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。 比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011,如果是-3,就是10000011。那么,这里的00000011和10000011就是机器数。
- 真值 机器数的第一位是符号位,后边才是真正的数值,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:
的真值=+0000001=+1,
的真值=-0000001=-1。
二、数的原码、反码和补码表示
- 原码 原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制: 原=00000001,
原=10000001。
第一位是符号位。因为第一位是符号位,所以8位二进制数的取值范围就是:
→。
- 反码 反码的表示方法为正数的反码是其本身。负数的反码是在其原码的基础上,符号位不变,其余各个位取反。
原=反
原=反
- 补码 补码的表示方法为正数的补码就是其本身。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1(即在反码的基础上+1)。 原=反=补, 原=反=补。
三、数的定点表示和浮点表示
在计算机中小数点一般有两种表示法:一种是小数点固定在某一位置的定点表示法;另一种是小数点的位置可任意移动的浮点表示法。相应于这两种表示的计算机分别称为定点计算机和浮点计算机。
- 定点表示法 机器中所有数的小数点位置是固定不变的,因而小数点就不必使用记号表示出来。实际上,小数点可固定在任意一个位置上。
- 浮点表示法 在数的定点表示法中,由于数的表示范围较窄常常不能满足各种数值问题的需要。为了扩大数的表示范围,方便用户使用,有些计算机常采用浮点表示法。表示一个浮点数,要用两部分:尾数和阶码。尾数用以表示数的有效数值;阶码用以表示小数点在该数中的位置。 计算机多数情况下采用浮点数表示数值,它与科学计数法相似,把一个二进制数通过移动小数点位置表示成阶码和尾数两部分:
其中E是N的阶码(Exponent),是有符号的整数。S是N的尾数(Mantiss),是数值的有效数字部分,一般规定取二进制定点纯小数形式。
例:1011101B=2+70.1011101, 101.1101B=2+30.1011101, x0.1011101