真值
机器所对应的二进制的真正的数值
1000 0111=-7
0000 1111=15
1000 1010=-10
原码
原码就是符号位加上真值的绝对值
正数:符号位 有效位 +11 11->000 1011
0000 1011
反码
正数:正数的反码=原码
负数:符号位不变,其余各位逐一取反,只有两种状态[0,1]即1->0 0->1
补码
正数:正数的原码=反码=补码
负数:先求得反码,在负数反码的基础上加1
扩展
为什么需要反码和补码?
在设计计算机时,只设计了加法器,没有设置减法器
5-3=5+(-3)
原码
5=0000 0101[原码]
-3=1000 0011[原码]
0000 0101
1000 0011
1000 0011[原码=-8](不正确)
原码不能直接进行运算
反码:解决了只设计加法器,使用加法器进行减法运算的问题;
缺点:正负相加0的表示不唯一
补码[高位溢出]
1=0000 0001[补码]
-1=1111 1111[补码]
…
相加等于0000 0000
高位溢出
将补码转原码
因为负数的补码不能直接读出结果,但是原码可以,所以将补码转原码 可以读出负数的值
补码->原码
原则:补码的补码
把补码当原码,求补码
计算规则:符号位不变,其余取余,然后加一
1788

被折叠的 条评论
为什么被折叠?



