先理解二进制乘法,借助对乘法的理解,可以有以下理解:
例:1101_1001 = 217, 0010_0001 = 33
217 / 33 = 6...19, 11011001 / 00100001 = 110...10011
演算:
/--------------------------- 在四位放置1个100001 ----\
| /------------------------- 在二位放置1个100001 ------------- 算术表达
1 1 0 -------------------- 余数太小,不能放置100001 ----/
_____________________
00100001 ) 1 1 0 1 1 0 0 1
1 0 0 0 0 1 ------------ 减去00100001b*8 ---------- ------\
------------------------- \
1 0 1 0 1 0 \
1 0 0 0 0 1 ------------ 减去00100001b*4 ------------------------- 数学意义
------------------------- /
1 0 0 1 1 ------------ 减不了,余数 ---------------- /
得:算术表达 === 数学意义
二进制除法的理解:11011001b / 00100001b理解为,在一 / 二 / 四 / 八 /...的某位开始,尝试能否减去100001b,最后减不掉的成余数(类似十进制217/33,理解为,从十位开始减33,减不了,尝试个位减33,能减去6个,余下19不能减)