二进制怎么计算

发布时间:2020-07-28 07:09:25

如上

网友回答

二进制数的加、减、乘、除四则算术运算法则其实与十进制数的四则算术运算法则是一一对应的。理解了十进制数的四则算术运算法则,二进制数的四则算术运算就一点都不难了。下面分别予以介绍。

  (1) 加法运算法则
  0+0=0,0+1=1,1+0=1,1+1=10 ,也就是当两个相加的二进制位仅一位为1时,相加的结果为1;如果两个二进制位全是0,相加的结果仍为0;而如果两个相加的二进制位均为1,则结果为10(相当于十进制中的2),也就是“逢2进1”规则,与十进制中的“逢10进1”的道理一样。
  在进行二进制加减法运算时,最关键的一点就是逢2进1,进1当1,而借1当2。大家联想一下我们经常使用的十进制数加法运算法则,那就是逢10进1,进1当1,而借1当10,这样一来我们就好理解了。二进制数的加法运算法则只是把原来十进制数加法运算法则中的10改成了2。
  计算(10010)2+(11010)2的过程如图1-11所示(注意两数要从最低位开始对齐)。
  1)首先是进行最低位相加,这里加数和被加数都为“0”,根据加法法则可以知道,相加后为“0”;
  2)再进行倒数第二位相加,这里加数和被加数都为“1”,根据加法法则可以知道,相加后为“(10)2”,此时把后面的“0”留下,而把第一位的“1”向高一位进“1”;
  3)再进行倒数第三位相加,这里加数和被加数都为“0”,根据加法法则可以知道,本来结果应为“0”,但倒第二位已向这位进“1”了,此时就要同时把“被加数”、“加数”和“进位”这三个数加起来了,所以结果应为0+0+1=1;
  4)再进行倒数第四位的相加,这里加数和被加数分别为“1”和“0”,倒数第三位也没有进位,根据加法法则可以知道,相加后为“1”;
  5)最后是最高位相加,这里加数和被加数都为“1”,根据加法法则可以知道,相加后为“(10)2”。同样需把第一位的“0”留下,并向高位进1,这样会产生新的最高位,值为“1”(如果超出了字长的限制,则新产生的最高位将溢出)。
  这样(10010)2+(11010)2的最后运算结果为101100。

  (2)减法运算法则
  1-1=0,1-0=1,0-0=0,0-1=-1,也就是当两个相加的二进制位中同为0或1时,相减的结果为0;如果被减数的二进制位为1,而减数的二进制位为0,则相减的结果仍为1;而如果被减数的二进制位为0,而减数的二进制位为1,则需要向高位借1,但此时是借1当2,与十进制中的借1当10道理一样。
  计算(111010)2-(101011)2的过程如图1-12所示(注意两数要从最低位开始对齐)。
  1)首先是最低位相减,这里被减数为“0”,减数为“1”,不能直接相减,需要向高位(此时为倒数第二位)借“1”,这样相当于得到了十进制中的“2”,用2减1结果就得到1。
  2)再对倒数第二位相减,此时本来被减数和减数均为“1”,但是被减数的该位被上一步借走了1,所以最后就变为“0”(1-1)了。此时也不能直接与减数相减了,又需要向高位(此时为倒数第三位)借1。同样是借1当2,相当于该位总共为0+2=2。这样倒数第二位相减后的结果为2-1=1。
  3)用上一步同样的方法计算倒数第三位和倒数第四位的减法运算,结果都为1。
  4)再计算倒数第五位的减法运算,此时被减数原来为“1”,可是已被倒数第四位借走了1,所以成了“0”(1-1),而此时减数也为“0”,可以直接相减,得到的结果为“0”。
  5)最后计算最高位的相减,被减数和减数均为“1”,可以直接相减,得到的结果为“0”。
  这样一来,(111010)2-(101011)2的结果是(001111)2,由于整数的前导0可以不写,所以最后结果就是(1111)2。

  (3) 乘法运算法则
  0×0=0,0×1=0,1×0=0,1×1=1,也就只有当两个相乘的二进制位都为1,相乘的结果才为1;两个相乘的二进制位中只要有一位为0(也包括是两位同时为0),则相乘的结果都为0。也可以这么理解:1与任何数相乘的结果就是对应的被乘数;而0与任何数相乘的结果都为0。这与十进制中的乘法运算法则也是一样的。要注意的是,在乘法运算中,乘数的每一位要与被乘数的每一位分别相乘,而不仅是对应位相乘,而且乘数的每一位与被乘数的每一位相乘的结果的最低位要与对应的乘数位对齐。当然这与十进制的乘法运算法则也是一样的,很好理解。
  计算(1010)2×( 101)2的过程如图1-13所示(注意两数要从最低位开始对齐)。
  1)首先是乘数的最低位与被乘数的所有位相乘,因为乘数的最低位为“1”,根据乘法法则可以得出,结果其实就是被乘数本身,直接复制下来即可。此处结果就为1010。
  2)接着进行的是乘数的倒数第二位与被乘数的所有位相乘,因为乘数的这一位为“0”, 根据乘法运算法则可以得出,结果均为“0”。此处结果就为0000。
  3)然后是乘数的最高位与被乘数的所有位相乘,此时乘数为“1”,结果就是被乘数本身。此处结果就为1010。
  4)最后再按照前面介绍的二进制加法原则对以上三步所得的结果按位相加(但这里的位对齐方式与单纯的二进制数相加不一样,最低位一定要与对应乘数位对齐。这也与十进制的乘法运算方法一样),结果得到(110010)2。

  (4)除法运算法则
  当被除数大于除数时,商是“1”;当被除数小于除数时,不够除,商只能是“0”,这与十进制的除法也类似。二进制只有两个数(0,1),因此它的商也只能是1或0。
  计算(11001)2÷(101)2的过程如图1-14所示。
  1)因为除数为“101”,有3位,所以在被除数中也至少要取3位(从最高位开始取)。被除数的高3位为“110”,恰好比除数“101”大,可以直接相除,但商只能是1(因为二进制的最大数元就是1),然后把被除数减法商“1”与除数相乘后的结果,得到的值为“1”。
  2)再从被除数中取下一位“0”下来,与上一步的差“1”值组成新的被除数,为“10”,显然它比除数“101”小,不够除。于是在商的对应位置上输入“0”。
  3)继续从被除数中取下一位“1”下来,与上一步的余数“10”值组成新的被除数,为“101”,此数正好与除数“101”相等,所以此时的商取“1”,正好除尽。
  这样一来(11001)2÷(101)2所得的商就是(101)2了。
以上问题属网友观点,不代表本站立场,仅供参考!