第9节 原码补码反码
一、机器数和真值
在学习原码、反码和补码之前,需要先了解机器数和真值的概念。
1. 机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。
比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011,如果是-3就是10000011。
那么,这里的00000011和10000011就是机器数。
2. 真值
机器数的第一位是符号位,后边才是真正的数值,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:
0000 0001的真值= +000 0001 = +1
1000 0001的真值= -000 0001 = -1
二、数的原码、补码和反码表示
原码、反码、补码是计算机存储一个具体数字的编码方式。数值在计算机中是以补码的方式存储的。
1.原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:
[+1] 原 = 0000 0001
[-1]