二进制的四则运算 下载本文

101×1010+11×1010=1010000

从例6的计算结果可以看出,二进制乘法满足“交换律”;乘法对加法也满足“分配律”。对这一结论,大家还可以进行多次验证。 巩固练习 二进制运算 (1)1011×1101; (2)11101×1001;

(3)10101×(111+101); (4)(11001-1111)×101 4.除法

除法是乘法的逆运算,二进制除法和十进制除法也一样,而且更简单,每一位商数不是0,就是1。 例7 二进制除法

(1)10100010÷1001; (2)10010011÷111。 解 (1) (2)

10100010÷1001=10010; 10010011÷111=10101。

例8 求二进制除法的商数和余数 111010÷101 解

111010÷101 所得商数是1011,余数是11。 巩固练习 二进制除法 (1)1101110÷101; (2)1010110001÷1101; (3)求商数和余数 1101001÷1001

在二进制除法中,被除数,除数,商数和余数的关系和十进制除法的关系是相同的。 被除数=除数×商数+余数。 如例8,111010=101×1011+11。

二进制的四则运算

二进制也可以进行四则运算,它的运算规则如下所示:

加运算 0+0=0,0+1=1,1+0=1,1+1=10 逢2进1 减运算 1-1=0,1-0=1,0-0=1,0-1=1(向高位借1当2) 乘运算 0*0=0,0*1=0,1*0=0,1*1=1

除运算 二进制只有两个数(0,1),因此它的商是1或0.

例1:求(1011101)B与(0010011)B之和 例2: 求(1101)B与(0101)B的乘积

通过例(1)我们再来介绍两个概念:半加和全加。

半加是最低位的加数和被加数相加时,不考虑低位向本位进位。 全加是加数和被加数相加时,我们还要考虑低位向本位的进位。

2.3 二进制数的运算 二进制数的运算除了有四则运算外,还可以有逻辑运算。下面分别予以介绍。 2.3.1 二进制数的四则运算 二进制数与十进制数一样,同样可以进行加、减、乘、除四则运算。其算法规则如下: 加运算:0+0=0,0+1=1,1+0=1,1+1=10,#逢2进1; 减运算:1-1=0,1-0=1,0-0=0,0-1=1,#向高位借1当2; 乘运算:0×0=0,0×1=0,1×0=0,1×1=1,#只有同时为“1”时结果才为“1”; 除运算:二进制数只有两个数(0,1),因此它的商是1或0。 1.加、减法运算示例 例如:求(1101)2+(1010)2之和;求(110000)2–(10111)2之差,这两个计算过程分别如图2-12的(a)/(b)所示。 图2-12 二进制数加、减法计算示例 加法运算步骤 图2-12(a)所示的加法运算步骤如下: (1)首先是最右数码位相加。这里加数和被加数的最后一位分别为“0”和“1”,根据加法原则可以知道,相加后为“1”。

(2)再进行倒数第二位相加。这里加数和被加数的倒数第二位都为“1”,根据加法原则可以知道,相加后为“(10)2”,此时把后面的“0”留下,而把第一位的“1”向高一位进“1”。

(3)再进行倒数第三位相加。这里加数和被加数的倒数第二位都为“0”,根据加法原则可以知道,本来结果应为“0”,但倒数第二位已向这位进“1”了,相当于要加“被加数”、“加数”和“进位”这三个数的这个数码位,所以结果应为0+1=1。

(4)最后最高位相加。这里加数和被加数的最高位都为“1”,根据加法原则可以知道,相加后为“(10)2”。一位只能有一个数字,所以需要再向前进“1”,本身位留下“0”,这样该位相加后就得到“0”,而新的最高位为“1”。 通过以上运算,可以得到(1101)2+(1010)2=10101。 减法运算步骤

对于图2-12(b)所示的减法运算,在此专门解释一下。图中的“借位”行中某些位上方有标有“1”,表示该位被借数。具体过程为从被减数的右边第一位开始减去减数,这与十进制数的减法运算一样。在本例中,最低为“0”,由于0减去1,“0”比“1”小,而需要向右数第二位借位,而这里的第二位也为“0”,不够借转,需要继续而向右数第三位,以此类推,最后从右数第五位借得“1”。 下面是具体的去处过程:

(1)首先最后一位向倒数第二位借“1”,相当于得到了(10)2,也就是相当于十进制数中的“2”,用2减去1得1。

(2)再计算倒数第二位,因为该位同样为“0”,不及减数“1”大,需要继续向倒数第三位借“1”(同样是借“1”当“2”),但因为它在上一步中已借给了最后一位“1”(此时是真实的“1”),则倒数第二位目前为1,与减数“1”相减后得到“0”。

(3)用同样的方法倒数第三位要向它们的上一位借“1”(同样是当“2”),但同样已向它的下一位(倒数第二位)借给“1”(此时也是真实的“1”),所以最终得值也为“0”。

(4)被减数的倒数第四位尽管与前面的几位一样,也为“0”,但它所对应的减数倒数第四位却为“0”,而不是前面几位中对应的“1”,它向它的高位(倒数第五位)借“1”(相当于“2”)后,在借给了倒数第四位“1”(真实的“1”)后,仍有“1”余,1–0=1,所以该位结果为“1”。

(5)被减数的倒数第五位原来为“1”,但它借给了倒数第四位,所以最后为“0”,而此时减数的倒数第五位却为“1”,这样被减数需要继续向它的高位(倒数第六位)借“1”(相当于“2”),2–1=1。

(6)被减数的最后一位本来为“1”,可是借给倒数第五位后就为“0”了,而减数没有这个位,这样结果也就是被减数的相应位值大小,此处为“0”。

这样(110000)2–(10111)2最终的结果应该是:011001,最高位的“0”可以舍掉,就得到了11001这个结果。 在二进制数的加、减法运算中一定要联系上十进制数的加、减法运算方法,其实它们的道理是一样的,也是一一对应的。在十进制数的加法中,进“1”仍就当“1”,在二进制数中也是进“1”当“1”。在十进制数减法中我们向高位借“1”当“10”,在二进制数中就是借“1”当“2”。而被借的数仍然只是减少了“1”,这与十进制数一样。 2.乘、除法运算示例

下面再介绍二进制数运算的乘、除法运算示例。如求(1110)2×(0110)2和(1001110)2÷(110)2的结果,计算过程分别如图2-13(a)/(b)所示。

图2-13 二进制数乘、除法计算示例 乘法运算示例?

先看图2-13(a)所示的二进制数乘法运算,其实很简单,我们只要把二进制数中的“0”和“1”全部当成是十进制数中的“0”和“1”即可。根据十进制数中的乘法运算知道,任何数与“0”相乘所得的积均为“0”,这一点同样适用于二进制数的乘法运算。只有“1”与“1”相乘才等于“1”。有了这样两个原则就很容易理解图2-13(a)所示的乘法运算步骤了。下面是具体介绍。

(1)首先是乘数的最低位与被乘数的所有位相乘,因为乘数的最低位为“0”,根据以上原则可以得出,它与被乘数(1110)2的所有位相乘后的结果都为“0”。

(2)再是乘数的倒数第二位与被乘数的所有位相乘,因为乘数的这一位为“1”,根据以上原则可以得出,它与被乘数(1110)2的高三位相乘后的结果都为“1”,而于最低位相乘后的结果为“0”。

(3)再是乘数的倒数第三位与被乘数的所有位相乘,同样因为乘数的这一位为“1”,处理方法与结果都与上一步的倒数第二位一样,不再赘述。

(4)最后是乘数的最高位与被乘数的所有位相乘,因为乘数的这一位为“0”,所以与被乘数(1110)2的所有位相乘后的结果都为“0”。

(5)然后再按照前面介绍的二进制数加法原则对以上四步所得的结果按位相加(与十进制数的乘法运算方法一样),结果得到(1110)2×(0110)2=(1010100)2。 除法运算步骤?

最后看一下图2-13(b)所示的二进制数除法运算。它也与十进制数的除法运算方法一样,但它的商只能是“0”或“1”。在除法运算中还要用到前面介绍的二进制数减法运算方法。具体步骤如下。

说明:因为除数为“110”,有3位,所以在被除数中也至少要有3位(从高位数起)。被除数的高3位为“100”,比除数“110”小,所以要选到前4位(这与十进制数的除法运算规则是一样的),为“1001”。但要注意的是商只能为“0”,或者“1”,而不能是其他数。

(1)首先用“1”作为商试一下,相当于用“1”乘以除数“110”,然后把所得到的各位再与被除数的前4位“1001”相减。按照减法运算规则可以得到的余数为“011”。 (2)因为“011”与除数“110”相比,不足以被除,所以需要向低取一位,最终得到“0111”,此时的数就比除数“110”大了,可以继续除了。同样用“1”作为商去除,相当于用“1”去乘除数“110”,然后把所得的积与被除数中当前四位“0111”相减。根据以上介绍的减法运算规则可以得到此步的余数为“1”。

(3)因为“1”要远比除数“110”小,被除数向前取一位后为“11”,仍不够“110”除,所以此时需在商位置上用“0”作为商了。

(4)然后在被除数上继续向前取一位,得到“110”。此时恰好与除数“110”完全一样,结果当然是用“1”作为商,用它乘以除数“110”后再与被除数相减,得到的余数正好为“0”。证明这两个数能够整除。 这样一来,所得的商(1101)2就是两者相除的结果。