为什么整形在内存中的存储是用二进制的补码

文章探讨了计算机中整形数据使用补码存储的原因,包括CPU仅包含加法器、保持计算精度、补码与原码之间的转换以及符号位运算的简化。作者通过举例说明了原码相加可能产生的问题,以及补码如何解决这一问题,强调了补码在计算中的重要性。
摘要由CSDN通过智能技术生成

在上课听老师讲的时候我们不难会听见,整形数据在内存中存储的时候用的是补码。只是为什么呢?

在我个人理解看来一共有四个原因:

一.因为CPU中只有加法器。(我们所谓的减法,乘法,除法等等......是基于加法进行完成的)

二.为了维持计算的精准度。(稍后讲)

三.补码可以可以利用1.转化为原码。

四.补码可以带着最高位(符号位)进行运算。

第二点解释:我们可以在自己的编译器上去尝试写出(我用的vs2022)(原反补概念只针对于负数,正数的原反补相同)

如果我们将a + b 利用它们的原码加起来我们会发现答案并不 = 0,所以就显示出了我们计算机在进行计算的时候并不是简单的利用原码相加(要不怎么说前面的科学家都是巨人,我们只是站在巨人的肩膀上呢),科学家们就整出了个补码的概念,我们利用补码相加的时候我们会发现答案是1后面32位 0 ,但是我们的计算机(32位)只有32个字节所以要进行舍去,舍去了最高位1为了保留精度。

第三点:我们如何将补码转化为原码呢,原码转化成补码经过了取反+1,那我们是否是利用-1再取反呢,细心的人就会发现,当补码再次进行取反+1时

 这里用了加法而非减法。

第四点:这里的最高位也就是符号位我们是带着一起进行运算的避免出现复杂运算

以上观点纯个人理解,如有疑惑欢迎留言,如发现错误感谢指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老幺*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值