1.4 二进制算术运算

 

1.4 二进制算术运算

1.4.1 二进制算术运算的特点

当两个二进制数码表示两个数量大小时,它们之间可以进行数值运算,这种运算称为算术运算。二进制算术运算和十进制算术运算的规则基本相同,唯一的区别在于二进制数是“逢二进一”而不是十进制数的“逢十进一”。

例如,两个二进制数1001和0101的算术运算:

加法运算

  1001
+ 0101
------
  1110

减法运算

  1001
- 0101
------
  0100

乘法运算

  1001
× 0101
------
  1001
 0000
1001
------
10101

除法运算

 1001 ÷ 0101 = 1 余数 0100

从上面的例子中可以看到二进制算术运算的两个特点,即二进制数的乘法运算可以通过若干次的“被乘数(或零)左移1位”和“被乘数(或零)与部分积相加”这两种操作完成;而二进制数的除法运算能通过若干次的“除数右移1位”和“从被除数或余数中减去除数”这两种操作完成。

如果我们再能设法将减法操作转化为某种形式的加法操作,那么加、减、乘、除运算就全部可以用“移位”和“相加”两种操作实现了。利用上述特点能使运算电路的结构大为简化。这也是数字电路中普遍采用二进制算术运算的重要原因之一。

1.4.2 反码、补码和补码运算

在数字电路中,通常用逻辑电路输出的高、低电平表示二进制数的1和0。那么数的正、负又如何表示呢?通常采用的方法是在二进制数的前面增加一位符号位。符号位为0表示这个数是正数,符号位为1表示这个数是负数。这种形式的数称为原码。

在做减法运算时,如果两个数是用原码表示的,则首先需要比较两数绝对值的大小,然后以绝对值大的一个作为被减数、绝对值小的一个作为减数,求出差值,并以绝对值大的一个数的符号作为差值的符号。这种操作过程比较麻烦,而且需要使用数值比较电路和减法运算电路。如果能用两数的补码相加代替上述的减法运算,那么计算过程中就无需使用数值比较电路和减法运算电路了,从而使运算器的电路结构大为简化。

为了说明补码运算的原理,我们先来讨论一个生活中常见的事例。例如,你在5点钟的时候发现自己的手表停在10点上了,因而必须把表针拨回到5点。由图1.4.1可以看出,这时有两种拨法:第一种拨法是往回拨5格,10-5=5,拨回到了5点;另一种拨法是往前拨7格,10+7=17。由于表盘的最大数只有12,超过12以后的“进位”将自动消失,于是就只剩下减去12以后的余数了,即17-12=5,也将表针拨回到了5点。这个例子说明,10-5的减法运算可以用10+7的加法运算代替。因为5和7相加正好等于产生进位的模数12,所以我们称7为-5对模12的补数,也称为补码(Complement)。

从这个例子中可以得出一个结论,就是在舍弃进位的条件下,减去某个数可以用加上它的补码来代替。这个结论同样适用于二进制数的运算。

由图可见,1011-0111=0100的减法运算,在舍弃进位的条件下,可以用1011+1001=0100的加法运算代替。因为4位二进制数的进位基数是16(10000),所以1001(9)恰好是-0111(-7)对模16的补码。

基于上述原理,对于有效数字(不包括符号位)为n位的二进制数N,它的补码(M)表示方法为:

𝑀=2𝑛−𝑁M=2n−N

即正数(当符号位为0时)的补码与原码相同,负数(当符号位为1时)的补码等于 2𝑛−𝑁2n−N。符号位保持不变。

在一些国外的教材中,也将上述定义的补码称为“2的补码”(2's Complement)。为了避免在求补码的过程中做减法运算,通常是先求出N的反码(𝑁ˉNˉ),然后在负数的反码上加1而得到补码。二进制N的反码(𝑁ˉNˉ)是这样定义的:

𝑁ˉ=2𝑛−1−𝑁Nˉ=2n−1−N

即将N中每一位的1改为0,0改为1,就得到了𝑁ˉNˉ。以后我们将会看到,将二进制数的每一位求反,在电路上是很容易实现的。

由上述公式可知,当N为负数时,𝑁ˉ+1=2𝑛−𝑁Nˉ+1=2n−N,而2^n - N即为N的补码。

例1.4.1 写出带符号位二进制数00011010(+26)、10011010(-26)、00101101(+45)和10101101(-45)的反码和补码。

解: 根据上述公式得到:

原码反码补码
000110100001101000011010
100110101110010111100110
001011010010110100101101
101011011101001011010011

表1.4.1是带符号位的3位二进制数原码、反码和补码的对照表。其中规定用1000作为-8的补码,而不用来表示-0。

十进制数原码(带符号数)反码补码
+7011101110111
+6011001100110
+5010101010101
+4010001000100
+3001100110011
+2001000100010
+1000100010001
+0000000000000
-1100111101111
-2101011011110
-3101111001101
-4110010111100
-5110110101011
-6111010011010
-7111110001001
-8100001111000

下面再来讨论两个用补码表示的二进制数相加时,和的符号位如何得到。为此,我们在例1.4.2中列举出了两数相加时的四种情况。

例1.4.2 用二进制补码运算求出13+10, 13-10, -13+10和-13-10。

解: 由于13+10和-13-10的绝对值为23,所以必须用有效数字为5位的二进制数才能表示,再加上一位符号位,就得到6位的二进制补码。

由公式可知,+13的二进制补码应为001101(最高位为符号位),-13的二进制补码为110011,+10的二进制补码为001010,-10的二进制补码为110110。计算结果分别为:

  1. 13 + 10
  001101 (+13)
+ 001010 (+10)
-----------
  010111 (+23)
  1. 13 - 10
  001101 (+13)
+ 110110 (-10)
-----------
  000011 (+3)
  1. -13 + 10
  110011 (-13)
+ 001010 (+10)
-----------
  111101 (-3)
  1. -13 - 10
  110011 (-13)
+ 110110 (-10)
-----------
  101001 (-23)

从上面的例子中可以看出,若将两个加数的符号位和来自最高有效数字位的进位相加,得到的结果(舍弃产生的进位)就是和的符号。这一方法仍然可以用图1.4.2所示的图形来说明。

需要强调的是,在两个同符号数相加时,它们的绝对值之和不可超过有效数字位所能表示的最大值,否则会得出错误的计算结果。

表1.4.1 带符号位的3位二进制数原码、反码和补码对照表

十进制数原码(带符号数)反码补码
+7011101110111
+6011001100110
+5010101010101
+4010001000100
+3001100110011
+2001000100010
+1000100010001
+0000000000000
-1100111101111
-2101011011110
-3101111001101
-4110010111100
-5110110101011
-6111010011010
-7111110001001
-8100001111000

总结

通过以上对数制、码制及其转换方法的介绍,我们了解到数字电路中使用的主要数制及其转换方法。尤其是在二进制算术运算中,补码的使用极大地简化了电路设计,使加减运算统一为加法操作,提高了运算效率和可靠性。这些知识为我们进一步学习和设计复杂的数字电路打下了坚实的基础。

 

 

 

 

 

 

  • 20
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
代码下载:完整代码,可直接运行 ;运行版本:2022a或2019b或2014a;若运行有问题,可私信博主; **仿真咨询 1 各类智能优化算法改进及应用** 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 **2 机器学习和深度学习方面** 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 **3 图像处理方面** 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 **4 路径规划方面** 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 **5 无人机应用方面** 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 **6 无线传感器定位及布局方面** 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 **7 信号处理方面** 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 **8 电力系统方面** 微电网优化、无功优化、配电网重构、储能配置 **9 元胞自动机方面** 交通流 人群疏散 病毒扩散 晶体生长 **10 雷达方面** 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夏驰和徐策

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

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

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

打赏作者

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

抵扣说明:

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

余额充值