原码反码补码

1、对计算机中常见数据简单分类

数据分类:
(1)数值类型:1.整数:正整数、负整数; 2.浮点数
(2)非数值类型: 图片、视频、音频、文字

2、机器数 与 真值

机器数

就是数值在计算机中的二进制表现形式
机器数在计算机中有符号,使用最高位表示符号,使用0表示正,使用1表示负
一个字节8个bit位表示
例:+5=0000 0101
-10=1000 1010

真值

机器数所表示的真正的数值
例:1000 1010=-10

3、原码

原码就是符号位加上真值的绝对值

正数:
34:00100010
负数:
-29:10011101
-19:10010011

4、反码

正数:正数的反码=原码
例:+3=0000 0011【原码】=0000 0011【反码】

负数:符号位不变,其余各位直接取反
例:-7 原码:1000 0111 反码:1111 1000
-33 原码:1010 0001 反码:1101 1110
-37 原码:1010 0101 反码:1101 1010
-49 原码:1011 0001 反码:1100 1110

5、补码

计算机中数据以补码的形式存储,同样以补码的形式参与运算

正数:原码=反码=补码
例:+3=0000 0011【原码】=0000 0011【反码】=0000 0011【补码】

负数:首先求得反码。在反码基础上+1,加到最低位上
例:-34 原码:1010 0010 反码:1101 1101 补码:1101 1110
-29 原码:1001 1101 反码:1110 0010 补码:1110 0011
-47 原码:1010 1111 反码:1101 0000 补码:1101 0001

6、扩展

(1)为什么需要反码和补码?

反码
计算机的运算器只有加法器,没有减法器,为了将减法转换为加法进行计算。但是,反码有缺陷,正负相加0的表示不唯一

补码
为了解决反码正负相加不唯一的情况,使用高位溢出解决。

(2)使用补码计算

例:45-19=26
45 补码:0010 1101
-19补码:1110 1101
0001 1010【补码】=26

53-27=26
53 补码:0011 0101
-27补码:1110 0101
0001 1010【补码】=26

65-34=31
65 补码:0100 0001
-34 补码:1101 1110
0001 1111【补码】=31

-34-27=-61
-34 补码:1101 1110
-27补码:1110 0101
1100 0011【补码】
1011 1100 【取反】
1011 1101【+1为原码】=-61

(3)将补码转换为原码

正数:不需要转
负数:求补码的补码
将负数的补码当成原码,然后求该原码的补码

例:1101 1110【补码】 1010 0001【取反】 1010 0010【原码】
1001 1011【补码】 1110 0100【取反】 1110 0101【原码】
1110 0011 【补码】 1001 1100【取反】 1001 1101【原码】
1001 0011 【补码】 1110 1100【取反】 1110 1101【原码】
1111 1111 1000 0000【补码】1000 0000 0111 1111【取反】1000 0000 1000 0000=-128

计算规则:符号位不变,其余各位置直接取反,然后加1

展开阅读全文
©️2020 CSDN 皮肤主题: 1024 设计师: 上身试试 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值