A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魔心邪 中级黑马   /  2015-5-1 00:57  /  637 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

二进制乘法原理:
就是左移(进位)8次,每次最高位为1则加进去,8位移完就得出乘积了
实际上和我们做10进制的乘法是一样的,只不过这里的进制是2罢了

比如5×6,转成二进制就是0101×0110
十进制乘法大家都会做,公式就是

我们他当成十进制101×110来计算下看看
4位乘积=被乘数×千位被+被乘数×百位+被乘数×十位+被乘数×个位
既0101×0110=101×0000+101×100+101×10+101×0
变化下:
4位乘积=被乘数×千位数×1000+被乘数×百位数×100+被乘数×10位数×10+被乘数×个位数
既0101×0110=101×(0×1000)+101×(1×100) +101×(1×10)+101×0

再变化下:
4位乘积=被乘数×千位数×10×10×10+被乘数×百位数×10×10+被乘数×10位数×10+被乘数×个位数
既0101×0110=101×(0×10×10×10)+101×(1×10×10)+101×(1×10)+101×0
=(((101×0)×10)+(101×1))×10+(101×1))×10+101×0

我们可以看到,实际上乘法结果就是被乘数乘以每一位乘以模(10)的N次方的累计和(其实左移位就是进位啦,看得出来吗?)

而换成2进制的话很简单,把10读成二进制2就行了,结果还是:
4位乘积=被乘数×千位数×10×10×10+被乘数×百位数×10×10+被乘数×10位数×10+被乘数×个位数
既0101×0110=101×(0×10×10×10)+101×(1×10×10)+101×(1×10)+101×0
=(((101×0)×2)+(101×1))×2+(101×1))×2+101×0

由于乘2就是移位(进位),把上面的公式中乘2换成左移位就行了

6 个回复

倒序浏览
太长了,不想看,也不想研究这个
回复 使用道具 举报
计算机组成原理,唐朔飞版。第六章讲的就是二进制的运算,有兴趣可以看一下。一般都用booth算法来做
回复 使用道具 举报
太赞了,顶一个
回复 使用道具 举报
这么复杂吗?
回复 使用道具 举报
好高深啊现在还不懂啊
回复 使用道具 举报
这研究的好深,太难了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马