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