原码、反码、补码
- 计算机中常见数据的分类
- 机器数&真值
- 原码
- 反码
- 补码
- 扩展
计算机中常见数据的分类
- 数值类型
- 非数值类型
机器数
数值在计算机中的二进制表示形式
机器数是带有符号的,最高位是符号位。==0正1负==
一个数据的第一位为符号位,剩余为有效位
+3 0000 0011
真值
机器数所对应的二进制真正的数值
0000 0011 = +3
原码
符号位加上真值的绝对值
正数:符号位 有效位
0010 0010—>34
1010 0111—>-39
1011 0111—>-55
反码
正数:正数的反码等于原码
负数:符号位不变,其余取反
原码 1011 0001—>-49
反码 1100 1110
原码 1010 0100—>-36
反码 1101 1011
补码
正数:正数的原码=反码=补码
负数:负数的补码是反码+1
扩展
为什么需要反码和补码?
在设计计算机时,只设计了加法器,没有设计减法器
反码解决了没有减法器,但0的结果不唯一
补码解决了所有问题
使用补码计算
补码转原码
补码的补码
符号位不变,其余取反加1
0000 0000 0000 0000
1000 0000 1000 0000
1111 1111 0111 1111
0000 0000 0000 0001
1111 1111 1000 0000
1000 0000=-128[补码]