booth算法原理的简单化理解「建议收藏」

booth算法原理的简单化理解「建议收藏」最近,在学习带符号二进制数乘法(multiplicationof signednumbers)时接触到了布思算法(boothalgorithm)。由于是第一次接触,对于其原理却一无所知,书上的解释以及网上的文章不知是自己才疏学浅还本来就是泛泛而谈,没有让我了解其本质。经过长时间的思考分析,最终找到了一种比较简单的理解方法。举一个简单的例子,比如说计算10100001×00111110,

最近,在学习带符号二进制数乘法(multiplication of  signed numbers)时接触到了布思算法(booth algorithm)。由于是第一次接触,对于其原理却一无所知,书上的解释以及网上的文章不知是自己才疏学浅还本来就是泛泛而谈,没有让我了解其本质。经过长时间的思考分析,最终找到了一种比较简单的理解方法。

举一个简单的例子,比如说计算10100001×00111110,在这里首先将乘数00111110改写为01000000 – 00000010

即

                       01000000

               –       00000010

—————————————————

                       001111110


这样根据乘法分配律得10100001×00111110=10100001×(01000000-0000010)

类似于booth算法的重新编码形式,再将上述算式改写为

10100001×00111110=10100001×0+1 000000    +     10100001×000000 -1 0

最终再将上式合并到一起,可得由booth算法改写后的编码形式:10100001 × 0+10000-10

由此可见,乘数的数段”01″可以重新编码为“+1”,数段“10”可以重新编码为“-1”,数段“11”可重新编码为“0”

根据无符号二进制数乘法的过程可知,当乘数段为“00”只是对乘数进行了右移操作,故重新编码为“0”


由于上述推导过程是根据二进制数加减以及乘法分配律推导而来的,故对于由补码表示的负数乘法同样适用


(以上推导难免有误,欢迎交流指正)


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/203501.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 爬虫(第一篇) IP代理池

    爬虫(第一篇) IP代理池搞虫子的都知道,IP代理是必要的方法,为什么?这个大家知道就好了,最近写了个IP代理池,给大家围观一下:开始。首先咱们找到一个免费的IP代理网站,读取人家的数据,但是注意了,注意频率别把人家给搞崩了第一:线程池,多个线程检测packagecom.*.util.thread;importorg.apache.log4j.Logger;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Ex

    2022年6月7日
  • iOS:分割控制器UISplitViewcontroller

    iOS:分割控制器UISplitViewcontroller

    2021年9月10日
  • 加密狗android,Android系统加密狗的设计与实现

    加密狗android,Android系统加密狗的设计与实现摘要:随着IT产业的迅猛发展,软件作为IT产业中的一项重要产品,现在已经随着电脑进入千家万户,深入到用户生活中的每个地方。但是针对软件,有一个问题一直存在,那就是软件盗版的问题。随着软件影响范围的扩大,盗版软件带来的危害也是越发的严重。另外,智能手机也已经进入一个高速发展期,Android系统手机在智能手机市场中占据很大的一块份额。在这样的背景下,本文提出一种使用Android系统手机对软件进行…

    2022年5月13日
  • 如何用SVN版本控制器将提交的文件还原到以前的版本

    如何用SVN版本控制器将提交的文件还原到以前的版本

    2021年9月19日
  • 数据分析法、数据分析方法论总结

    数据分析法、数据分析方法论总结数据分析方法论1、5W2H分析法2、PEST分析法3、逻辑树分析法4、4P营销理论5、用户使用行为理论数据分析法数据分析方法论主要用来指导数据分析师进行一次完整的数据分析,它更多的是指数据分析思路,比如从哪几方面开展数据分析,各方面包含什么内容和指标。 数据分析方法论主要从宏观角度指导如何进行数据分析,它就像一个数据分析前期的规划,指导着后期数据分析工作的开展。 数据分析法则是指具体的分析方法,如常见的对比分析、交叉分析、相关分析、回归分析、聚类分析等数据分析法。数据分析法.

    2022年5月9日
  • mysql导入Excel表格中文表头_把一个表里的数据导入另一个表

    mysql导入Excel表格中文表头_把一个表里的数据导入另一个表一,Linux版本1.先把Excel的xls格式转为csv3.用notepad++转为uft8编码4.然后转为txt格式5.将本地文件上传到服务器上选择数据库5.创建表格式要跟Excel一样createtableclass(idvarchar(20),namevarchar(20),chinesevarchar(20),mathvarchar(20),englishvarchar(20),physicsvarchar(20)

    2022年9月21日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号