《计算机组成原理》----2.3 二进制运算

本文介绍了计算机中二进制整数的基本算术运算,包括加法、减法、乘法和除法。详细解释了二进制加法、减法和乘法的规则,并通过实例展示了如何处理进位和借位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本节书摘来自华章出版社《计算机组成原理》一书中的第2章,第2.3节, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 王苏峰 肖晓强 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.3 二进制运算

本节将介绍基本的二进制整数算术运算(加法、减法、乘法和除法)。二进制算术运算的规则与十进制基本相同;唯一的区别在于,十进制算术运算以10为基数,每位有10个数字,而二进制运算以2为基数,每位只有2个数字。下面列出了二进制加法、减法和乘法运算的规则,比起对应的十进制运算简单了许多。三个一位二进制数加法的规则也列在了下面,这有助于读者理解进位是如何处理的。


95bfb3ea95be9d239fd89d69847ad0fe6807841c

上面的规则描述了两个一位二进制数进行加法、减法和乘法运算时的情形。两个位相加可能产生进位或借位,就像十进制算术运算中那样(例如4+8=2,进位为1)。

真实计算机处理8位、16位、32位或64位的数字,一个字中的所有位都必须参与算术运算。当两个二进制字相加时,一个加数中所有的位都将与另一个加数中对应的位相加,从最低位开始,每次处理一位。加法产生的进位应参与其左边一列中两位的加法。请考虑下面4个8位二进制数相加的例子。请注意,图中加阴影的表示进位(值为1)。


d03b47de1f0908087c5829cd4f9bb596325c8ed3

当两个二进制数相减时,一定要记得0–1的差为1,同时会从其左侧借一位。请考虑下面二进制减法的例子(加阴影的表示借位)。请注意例5是用小数减去大数,就像传统的算术运算一样。但我们很快就会看到,计算机并没有按照这种方式工作。


6cdb28c803de5552f589ee6bd9c99eae5f760143

十进制乘法则要难一些——我们必须从1×1=1开始学习九九表,直到9×9=81。二进制乘法仅需要一个简单乘法表,记录了两个位相乘得到一个位的积。
0×0=0
0×1=0
1×0=0
1×1=1
下面的例子描述了011010012(乘数)与010010012(被乘数)相乘的过程。两个n位字相乘将产生一个2n位的积。乘法运算从被乘数的最低位开始,测试它的值是0还是1。如果该位为0,则在算式中写下n个0;如果该位为1,则写下乘数(这个值被称作部分积)。接下来继续测试被乘数左边的下一位并执行同样的操作——这个例子是从上一个部分积的下方、左边一位开始写下n个0或n位的乘数(即部分积被左移了1位)。这个过程将一直继续,直到被乘数中的每一位都按顺序被检测过。最后,这n个部分积被加到一起,生成乘数与被乘数的积。


df83445c859193fa2535a673be39e93525f9f6e5

计算机不会像我们这样完成乘法运算。本章将在后面介绍计算机实现乘法的一些方法。


a483efa3d8a5a486b98ccc56344718b7572cdf46


8eb173b92f72497b3fefc7d8b74a7739834d6ded
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值