原码 反码 补码之间的互相转换,计算机数据通过补码计算,数据通过补码存储在内存空间中。

本文详细介绍了原码、反码和补码的概念,以及它们之间的转换方法。通过实例展示了二进制与十进制的转换,并分析了补码在计算机中用于计算和内存存储的优势,包括统一处理符号位和数值域、简化加减法运算以及硬件电路设计的便利性。
摘要由CSDN通过智能技术生成

目录

一,原码 反码 补码 分别是什么,如何相互转换。

1,原码

2,反码

3,补码

拓展:

1,二进制B  如何转换成  十进制D

4,示例展示 :原码 反码 补码 的转换过程

5,示例展示 :补码 反码 原码 的转换过程

二,计算机中通过补码计算 和 通过补码向内存中存储提取数据。

补码的三个优势:

1.使用补码,可以将符号位和数值域统一处理;

2.加法和减法也可以统一处理(CPU只有加法器);

3.补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路;


一,原码 反码 补码 分别是什么,如何相互转换。

1,原码

原码就是我们所看到的十进制数,直接转换成二进制数,得到的就是原码。

2,反码

若该数值为正数 或 无符号类型:

则原码就是反码。

若该数值为负数:

反码通过原码除符号位以外的其它位按位取反得到反码。

3,补码

若该数值为正数 或 无符号类型:

则反码就是补码。

若该数值为负数:

补码通过反码+1得到。

拓展:

1,二进制B  如何转换成  十进制D

二进制的位权 2^3 2^2 2^1 2^0
10的二进制B 1  0 1 0

每位所代表

的十进制数

1*2^3 0*2^2 1*2^1 0*2^0

综上所述:

1010B == 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 == 8 + 0 + 2 + 0 ==10

4,示例展示 :原码 反码 补码 的转换过程

按字节编址的内存空间,signed int a = -10 ; 来具体展示

类型 signed int 高位字节数据 低位字节数据
原码  -10 1 000 0000 0000 0000 0000 0000 0000 1010
反码  -10  (取反) 1 111 1111 1111 1111 1111 1111 1111 0101
补码  -10   (+1) 1 111 1111    1111 1111 1111 1111  1111 0110

通过上面的展示可以更好的理解,原码是怎么一步一步的转变到补码的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值