计算机常见数据的分类
- 数值类型
- 非数值类型
机器数和机器数的真值
- 在机器数中,使用最高位来表示数字的正负;1为负,0为正;一个字长为8位
- 机器数的真值就是机器数所对应的真正的数值,例:1000 1101=-13,0000 1101=13
为什么需要反码和补码
- 反码:在设计计算机的时候只设计了加法器,没有减法器,使用加法计算来表示减法
- 补码:反码解决了没有减法器的的问题,但是会出现正负相加 0 表示不唯一,使用补码进行修正
原码
- 符号位,首先确定一个数的正负,如果是正数,首位使用0表示;如果是负数,首位使用1表示
- 有效位,真值的绝对值转换为二进制形式
- 将符号位和有效位拼接在一起
反码
- 正数:正数的反码和原码相同,例: +3 0000 0011【原码】=0000 0011【反码】
- 负数:符号位不变,其余各位直接取余,二进制只有两种状态,1-->0,0-->1
补码
- 正数:正数的原码、反码和补码全部相同,例: +3 0000 0011【原码】=0000 0011【反码】=0000 0011【补码】
- 负数:求得原码,再求反码,然后在最后一位+1
补码转原码
- 正数:补码=反码=原码
- 负数:补码的补码;首位不变,其余取反,再+1
反码转原码
- 正数:不变
- 负数:符号位不变,其余各位取反