2020-06-29
原码反码补码
1.对计算机中常见数据简单分类
数据分类
机器数:就是数值在计算机中的二进制表现形式;
最高位表示符号,使用0表示正,使用1表示负;
一个字节8个bit位表示。
例如:+5=0000 0101
-10=1000 1010
真值: 1000 1010=-10
机器数所表示的真正的数值
2.原码
符号位加上真质的绝对值
正数:+2=0000 0010
+5=0000 0101
负数-7
1000
练习
34=0010 0010
-29 = 1001 1101
-19=1001 0011
-128=1000 0000
3.反码
正数的反码=原码
+3=0000 0011【正=反】
负数:符号位不变,其余各位直接取反-7
原=1000 0111
反=1111 1000
练习:
-33=10100001——11011110
-37=10100101——11011010
-49=10110001——11001110
4.补码
正数:不变
负数:-17=1001 0001
1110 1110
最低位加一 1110 1111{补码}
-34=1010 0010——11011101——1101 1111
-29=1001 1101——1110 0010——11100011
-47=1010 1111——1101 0000——1101 0001
5.运算器:只有加法器,没有减法
运用反码计算1-1
0000 0001
1111 1110
11111111
1000 0000=-0=+0
补码计算1-1
0000 0001【1补码】
1111 1111【-1补码】
0000 0000【0】
高位溢出
6.为什么需要反码和补码
反码:在计算机的时候,只有加法器,,没有减法器,为了将减法转化为加法,设计反码;
但是反码与缺陷,正负相加0的表示不唯一
45-19=0010 1101= 0010 1101= 0001 1001
1001 0101=1110 1010
53-27=0011 0101=0011 0101=00011010
1001 1011=1110 0101
65-34= 0100 0001=0001 1111
1010 0010=1101 1110
-34-27=1010 0010 =1101 1110=1100 0011
1110 0101
1100 0011
补码:为了解决负数计算,使其高位溢出
7.补码换成原码计算方法
正数:不变
负数:求补码的补码
将负数的补码当做原码,然后求该原码的补码
计算规则:符号位不变,其余各位直接取反,然后加一
1101 1110 =1010 0010=-34
1001 1011=1110 0101
1110 0011=1001 1101
1001 0011=1110 1101
-128
1111 1111 1000 0000补码
1000 0000 0111 1111取反
1000 0000 1000 0000原码