原理:
二进制除法就是把十进制除法换成二进制表示。
主要掌握以下几点:
- 十进制与二进制相互转换
- 二进制乘法(对位相乘进位)
方法1:
按十进制除法的形式算,只是把元素全部表示为二进制。
如:
先写出38和6的二进制
再将除法用二进制表示
计算出商和余数并转化为十进制
方法2:
被除数不动,除数不断右移,本质上相当于看最多几个除数累加能逼近于被除数。(加上余数后就等于被除数)
如:
91 = 22个4+余数3,
38 = 6*6+2
从上图中可以看出方法2的计算过程,
91的二进制为:01011011
4的二进制为:100
1、先进行末尾补零至4的二进制最高位与91的二进制最高位对齐(除数再左移一位就大于被除数了不能再移),左移一位代表乘2,右移一位代表除2;
91的二进制为: 01011011
4补零后的二进制为: 01000000(即十进制的64)
2、进行第一次二进制减法运算:
01011011
- 01000000
= 00011011
显然余数00011011不为0,所以被除数91(十进制)中至少包含一个01000000(即十进制的64)
,商的二进制中开始计数记上一位1;
目前的商为二进制1
;
3、减法运算完毕一次以后,右移一位,看是否超出了被除数,如果超出了被除数的值,说明不能再除也不能再减了,那么继续右移,并在商的结果中记上一位0;
目前的商为二进制10
;
00011011
- 00100000
x
4、继续右移,进行第二次二进制减法运算:
00011011
- 00010000
= 00001011
显然余数00001011不为0,所以被除数91(十进制)中至少包含一个00010000(即十进制的16)
,商的二进制中计数记上一位1;
目前的商为二进制101
;
5、继续右移,进行第三次二进制减法运算:
00001011
- 00001000
= 00000011
显然余数00000011不为0,所以被除数91(十进制)中至少包含一个00001000(即十进制的8)
,商的二进制中计数记上一位1;
目前的商为二进制1011
;
6、减法运算完毕一次以后,右移一位,看是否超出了被除数,如果超出了被除数的值,说明不能再除也不能再减了,那么继续右移,并在商的结果中记上一位0;
目前的商为二进制10110
;
00000011
- 00000100
x
7、此时不急着再右移,检查此时的商10110即十进制的22,22*4=88
,包含了22个除数4,商再往后除已经除不动4了,所以剩下的00000011
(十进制的3)就是余数,之前累计得到的商10110
为22;
到此为止,22*4+3=91
验算正确,二进制除法计算完毕!