二进制乘法、除法的计算过程解读

0. 问题描述

本文包括4位二进制乘法(4位乘4位)和8位二进制除法(8位除4位)的详细计算过程。

1.创作原因

计组实验中的涉及到此问题,当时上网查阅了许多博客和资料都没能理解这两者的计算过程,并且我发现许多资料上的计算过程显得非常繁琐、晦涩,明明两三句话就可以讲明白的东西偏要说的不明不白,细节的地方忽略,计算过程示例也很少且不清楚,导致我遇到了很大困难。后来历经磨难终于理解了这两个计算过程,当时就决心要写一篇博客把这个用最简单但却最详细的话讲清楚,为后来者提供便利,少走一些弯路,多节约一些时间。
下面我们直接开始吧~

2.二进制乘法

被乘数设为5:101B
乘数设为7:111B

开始计算之前设置一个变量N保存乘法的最终结果,初始化为0。
则有详细的计算过程如下:

  1. 判断乘数111B的最后一位为1,则N加上被乘数,N更新为0+5=5
  2. 乘数右移一位更新为11B,被乘数左移一位更新为10
  3. 判断乘数11B最低位为1,则N加上被乘数,N更新为10+5=15
  4. 乘数右移一位更新为1B,被乘数左移一位更新为20
  5. 此时乘数1B最低位为1,则N加上被乘数,N更新为20+15=35
  6. 乘数右移一位更新为0,被乘数左移一位更新为40
  7. 此时检测乘数为0,循环结束,N的最终结果为35,即为乘法的结果

下面来总结一下整个计算过程的要点:

  • 继续循环还是结束循环取决于什么时候乘数变为0
  • 每一次循环中如果乘数最后一位为1则N加上被乘数;为0则不加上被乘数

下面再来看一下它的思想是什么:
我们知道 8 ∗ 8 = 16 ∗ 4 = 32 ∗ 2 = 64 ∗ 1 = 64 8*8=16*4=32*2=64*1=64 88=16

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值