模2除法的一点想法

又是网上找了一遍感觉将的太不通俗易懂了。

在这里插入图片描述
以这个为例子:

首先用1111开始除1101 发现能够除(特别要说明模2除中的够除 不是说1111的大小比1101大就够除)
而是作为被除数1111的位数是4位,才能够去除这个1101(也是四位) 商1

(其异或的结果也就是)余数是0010 这个时候要往下除开始从0100(网上一般说的是发现除数是0就直接商0)我的理解是0100 位数不够(不是四位)直接商0,再移位 发现是1000 这个时候是四位了。 直接开出1101 。 直接商1 。然后结果是0101 右移1移位 1010 够四位开除1101 商1.

总体来数就是要保证下一个被除数能够是与除数位数相同 才能够除的起来,不然就直接商0 相当于除法不够除商0借位。
在这里插入图片描述
这个中间说的什么三位小于1001 所以除数应该是0000 我感觉他就是在跟我玩杂技,除数还能这样给我随便改的吗???我二进制除法不要面子的吗

又想了想 他那个思路之所以能对 是因为一个2进制数和0异或 是自己本身。所以他当被除数不够除的时候 直接将除数改为0000 从而商0 。结果和被除数位数不够直接商0 ,再将下一位提到被除数中结果是一致的。

以下是关于:第二版的截图:在这里插入图片描述
这是评论区上面说的,为什么会有0000的原因。

看了才知道0000.出现原因是: 被除数=商x除数+余数

在0011 第一出现的时候 商是0 。 这个时候要计算下一位 ,需要用0011 减去商(0)x除数(1001)=0000

之所以0000的出现就是最基本的除法计算过程

在被除数除以除数的时候,高位足够除的时候,用高位 减去(商x除数)余数结合下一位 作为下一个被 除的高位。 如果不够直接商0. 实际上我们还是要用 这个高位减去(商x除数)只不过因为商是0,而一个数减去0 我们通常直接省略了。

图解:
在这里插入图片描述
实际上28 - 27 我们都能理解

但是在13 变成135中间 还有个13 - 0 的过程被省略了 现实因为13除27不够 所以商0 这时候用13 - (0*27)的余数 作为高位+5 作为下一个被除数。

真是蠢哭了。。。。。

补: 个人觉得之所以模2除法在刚开始接触的时候难理解,是因为2进制除法的商0问题上,不像10进制那么直观,如上图在13/27不够除的时候10进制很直观的就商0.,而二进制在计算时候不足位存在补0的问题。
在我的印象中 最初除法10进制除法的时候,也没深究过这种不够除商0,然后下位补上再计算的过程。
而在学习二进制除法的时候,因为在计算过程中,直接带入的是10进制理解不够除商0.下一位拉下来。
之所以模2除法会纠结0000的问题在于,其计算商与余数的过程使用异或的方式来计算,不同于10进制的计算过程,导致不能直接带入低位补上的过程。
实际上模二除法 就是个除法计算,只是不同于在余数上使用模2减法,(而通常我们都是直接使用异或的方式,虽然结果一样)
也是这个异或的计算方式让我产生 为什么不足位时使用0000来计算的困惑。

如果,在计算方式上,直接使用模2减法,而不是使用效果相同的异或。就能很清楚的理解模2除法,就的除法计算(只是10进制除法计算余数直接相减,模二除法,余数使用模二减法)。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值