一.计算机系统构成及硬件基础知识---原码补码反码及移码
1. 在学习原码,反码,补码,移码之前,先了解机器数。
一个数在计算机中的二进制表现形式,叫做这个数的机器数。机器数是带符号位的,在计算机中用一个数的最高位存放符号,正数为0,负数为1.
比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011.如果是-3,就是10000011.
2.真值,将带符号位的机器数对应的真正数值成为机器数的真值。
例:00000001的真值是 = +000 00001 = +1,100000001的真值 = -000 0001 = -1
3.原码,反码,补码,移码的概念和计算方法
(1).原码:原码就是符号位加上真值的绝对值,即用第一位表示符号,其余为表示值,例如:
【+】原 = 0000 0001
【-1】原 = 1000 0001
第一位是符号位,所以8位二进制数的取值范围就是:【1111 1111,01111 1111】,即:【-127,127】
(2).反码
正数的反码是其原码本身
负数的反码,是在原码的基础上,除符号位外其余位数取反。
【+1】=【0000 0001】原 = 【0000 0001】反
【-1】=【1000 0001】原=【1111 1110】反
(2).补码
正数的补码是其原码本身
负数的补码是在反码的基础上加1
【+1】=【0000 0001】原 =【0000 0001】反 =【0000 0001】补
【-1】=【1000 0001】原=【1111 1110】反 =【1111 1111】补
(2).移码
正负数的移码都是把补码的符号位取反
【+1】=【0000 0001】原 =【0000 0001】反 =【0000 0001】补 =【1000 0001】移
【-1】=【1000 0001】原=【1111 1110】反 =【1111 1111】补 =【0111 1111】移
4.数值取值范围: