补码原理-处理器是如何将整数减法运算转换成整数加法运算的

本文探讨了处理器中如何通过补码实现加法模拟减法,包括加减法的本质、补码的运用,以及为何“按位取反加一”可以计算补码。重点介绍了符号位在加法中的作用和溢出规则。

        无论你是使用的最低端的51单片机还是最高端i9处理器,在这个处理器中只有加法运算电路没有减法运算电路,若你过有一些计算机基础,大概应该知道这是通过补码实现的。但处理器是如何将通过补码加法实现减法的呢?

1. 补码又是如何实现将加法运算转换成加法的呢?

        首先我们先看加法和减法的本质到底是什么,从网络上能搜索到很多关于加减法本质的理解,自认为一个比较好的解释是从数轴的角度去理解加减法的本质:

  • 加法的本质是将一个数向右移动,如a+b,是将数a向右移动b个单位
  • 减法的本质是将一个数向左移动,如a-b,是将数a向左移动b个单位

        在数学上整数的数量是无限的,而在处理器中为了平衡效率和性能,对整数的表示一般为有限个数,如uint8(用8个bit位去表示一个整数)最大能表示256个数、uint16最能表示65536个数、uint32可表示4294967296(约42亿)个数,当使用有限长度空间去表示整数后将会产生一个在数学上不会出现的现象---溢出(溢出的高位被抛弃),如uint8最大能表示255,这时若向其赋值256,这个数将产生溢出,溢出后会变成0,同理向其赋值257后会变成1.

        基于处理器存在溢出规律的特性,那么

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值