原码反码补码

原码反码补码

机器数与真值

在计算机中所有的数据都是以二进制保存的

​ 0000 0011=+3

​ 1000 0011=-3

在机器数中,使用最高位来表示数字的正负,1为负0为正;一个字长为8位

原码

​ 符号位:首先确定一个数的正负,首位用0表示,如果是负数首位用1表示;

​ 有效位:正值的绝对值转化为二进制形式

​ 将符号位和有效位连接在一起

反码

​ 正数:正数的反码与原码相同;

​ 负数:符号位不变,其余各位直接取反;

补码

​ 正数:正数的原码反码补码全部相同

​ 负数:求得原码,再求反码再加1;

为什么需要反码和补码

​ 反码:在设计计算机的时候只设计了加法器,没有减法器使用加法计算来表示减法

​ 补码:反码解决了没有减法器的问题,但是会出现正负相加0的表示不唯一,使用补码进行修正