1、机器数和真值
学习计算机之后,都知道了数据在计算机中的存储是以二进制数进行存储的,即都是由0和1这样的二进制数进行存储的。所以一个数在计算机中的二进制表示就叫做这个这个数的机器数。其中,最高位是符号位,正数为符号位为0,负数符号位为1.
因为一个数的二进制表示,也就是该数的机器数的第一位是符号位,所以,机器数的值并不能表示该数真正的值,例如:十进制正数:+3,在计算机中用八位二进制来存储,转换成二进制就是:000 000 11;十进制负数:-3,它的机器数是:100 000 11,如果从不考虑机器数的含义,只从字面上看的话,100 000 11转换成十进制数字就是27 + 21 + 2**0 = 128+2+1=131,但是机器数100 000 11表示的值却是十进制数-3,所以将带符号位的机器数对应的真正数值称为机器数的真值,即100 000 11的真值为-3。
2、原码,反码,补码
**原码:**最高位表示符号位,其余部分表示数值本身的绝对值。
[ + 1 ] 原 [+1]_原 [+1]原 = 000 000 01
[ − 1 ] 原 [-1]_原 [−1]原 = 100 000 01
第一位表示的是符号位,所以二进制数的取值范围是[111 111 11,011 111 11],即十进制:[-127,127]
**反码:**如果是正数,反码就是其本身,如果是负数,则除符号位不变,其他位取反,即0变为1,1变为0。
[+1] =