原码 反码 补码
数据的常用分类
机器数和机器数的真值
- 在计算机中所有的数据都是以而今只保存的
- 在机器数中,是用最高位来表示数字的正负;1为负,0为正;一个字长为8位
- 机器数的真值就是机器数所对应的真正数值;
- 1000 1101=-13 000 1101为真值
原码
- 符号位:首先确定一个数的正负,如果是正数,首位使用0表示,如果是负数,首位就用1表示;
- 有效位:真值得绝对值转化为二进制形式
- 将符号位和有效位拼接到一起
反码
- 正数:正数的反码和原码相同
- 负数:符号位不变 ,其他位直接取反 ,二进制只有两种状态,1和0(1变0,0变1);
补码
- 正数:正数的原码反码补码全部相同 ;
- 负数:求原码,再求反码,在最后一位+1 ;
为什么需要反码和补码
- 反码:在涉及计算机的时候只设计了加法器,没有减法器,使用加法器计算来表示减法
- 补码:反码解决了没有减法器的问题,但是会出现正负相加0表示不唯一,使用补码进行修正。
补码转原码
- 正数:补码=反码=原码
- 负数:补码的补码,首位不变,其余取反,再加1;
反码转原码
- 正数:不转
- 负数:符号位不变,其他位取反