这几天,无聊看了下机组,突然冒出个booth很是不理解,然后郁闷算了两天,似乎有点眉头(主要是网上的一大堆解说我也没看懂,实在愚钝),今天把这个眉头写下,有错误的欢迎指出。

1)所有公式都是从一段算数里得出规律的,所以首先还原下计算过程

2)算式过程如下:

任意数:A
二进制数:a3a2a1a0 也就是2^3*a3+2^2*a2+2^1*a1+2^0*a0

式1:A*a3a2a1a0 = A*(2^3*a3+2^2*a2+2^1*a1+2^0*a0)

因为2^3*a3 = 2^4*a3 -2^3*a3 、2^2*a2 = 2^3*a2-2^2*a2.。。也就是2^(n)*a=2^(n+1)*a - 2^(n)*a

因此,式1:A*(2^3*a3+2^2*a2+2^1*a1+2^0*a0)

= A*(2^4*a3-2^3*a3 + 2^3*a2-2^2*a2 + 2^2*a1-2^1*a1 + 2^1*a0-2^0*a0)

= A*(2^4*a3 + 2^3(-a3 +a2) + 2^2*(-a2 + a1) + 2^1*(-a1+*a0)-2^0*a0)

相信大家在最后看出来为什么‘11’‘00’都只是进位,而01为加,10为减:因为如最后所示除了头和尾,中间都为-a(n+1)+an,而在头尾各自补0的情况下,也满足01为加,10为减;

实测A为任何数都OK噢,同时booth也适用所有状态的原码、补码

如果从学渣角度理解booth算法相关推荐

  1. BOOTH 算法的简单理解

    学习FPGA时,对于乘法的运算,尤其是对于有符号的乘法运算,也许最熟悉不过的就是 BOOTH算法了. 这里讲解一下BOOTH算法的计算过程,方便大家对BOOTH的理解.        上图是BOOTH ...

  2. 再理解RankNet算法

    再理解RankNet算法 前面的一篇博文介绍了学习排序算法(Learning to Rank)中的RankNet算法.如下:http://blog.csdn.net/puqutogether/arti ...

  3. 从动力学角度看优化算法:为什么学习率不宜过小?

    ©PaperWeekly 原创 · 作者|苏剑林 单位|追一科技 研究方向|NLP.神经网络 本文的主题是"为什么我们需要有限的学习率",所谓"有限",指的是不 ...

  4. 从动力学角度看优化算法:GAN的第三个阶段

    作者丨苏剑林 单位丨追一科技 研究方向丨NLP,神经网络 个人主页丨kexue.fm 在对 GAN 的学习和思考过程中,我发现我不仅学习到了一种有效的生成模型,而且它全面地促进了我对各种模型各方面的理 ...

  5. 从动力学角度看优化算法:一个更整体的视角

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 最近把优化算法跟动力学结合起来思考得越来越起劲了,这是优化算法与动力学系列的第三篇,我有预感还会有 ...

  6. 从动力学角度看优化算法:自适应学习率算法

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 在从动力学角度看优化算法SGD:一些小启示一文中,我们提出 SGD 优化算法跟常微分方程(ODE) ...

  7. 从头到尾彻底理解傅里叶变换算法(下)

    从头到尾彻底理解傅里叶变换算法(上),请看今天第一条. 以下继续: 第三章.复数 复数扩展了我们一般所能理解的数的概念,复数包含了实数和虚数两部分,利用复数的形式可以把由两个变量表示的表达式变成由一个 ...

  8. 从头到尾彻底理解傅里叶变换算法(上)

    从头到尾彻底理解傅里叶变换算法(上) 前言 第一部分.  DFT 第一章.傅立叶变换的由来 第二章.实数形式离散傅立叶变换(Real DFT) 从头到尾彻底理解傅里叶变换算法.下 第三章.复数 第四章 ...

  9. 生成私钥 p q rsa_【安全】理解 RSA 算法

    Public-key Crytography简介 Public-key cryptography (公开密钥加密) 又称 asymmetric cryptography (非对称加密),即存在两把不同 ...

最新文章

  1. linux 系统命令
  2. C++11学习笔记-----获取异步操作执行结果
  3. dorado 中的日期--》oracle中的日期
  4. 写一个 panic blame 机器人
  5. java 泛型应用,通用返回类,泛型方法,泛型静态方法
  6. Java可变引用,Java – 对可变对象的易失性引用 – 对对象的字段的更新对所有线程都是可见的...
  7. C++ 进阶——object slicing 与虚函数与dynamic_cast
  8. 模板题——前缀和与差分
  9. paip.c++程序崩溃的汇编级别调试-打印堆栈-gcc gdb
  10. u盘作为重要的计算机存储介质,U盘是采用FLASH MEMORY作为存储介质的移动存储设备...
  11. SpringBoot+tomcat发布之war包发布
  12. Qt网络文件加密处理断点续传多文件下载器bt开源种子下载器分析附下载
  13. android模拟器如何增加RAM
  14. android8.0 桌面图标适配
  15. 告别无聊的log:让你的Logcat 输出多彩日志
  16. 香港主机如何设置网站404页面
  17. Hive通过-f调用sql文件并进行传参
  18. 30分钟掌握ES6/ES2015核心内容(上) 1
  19. JS实现记住用户密码
  20. 赛格曹晓冬分享实录:线下仍是智能硬件产品的主要消费渠道

热门文章

  1. JS实现可拖拽div
  2. 软件工程中设计文档的重要性
  3. 联咏NT98323SDK编译
  4. Microsoft Access 操作必须使用一个可更新的查询
  5. Android Audio - 支持多个CODEC同时录音
  6. L1-4 调和平均(天梯赛2020)
  7. fw_printenv/fw_setenv
  8. RPGJS 进阶分析之 如何使用RMXP导出的数据
  9. 数据结构——约瑟夫环(Joseph Circle)
  10. 泰凌微BDT烧录软件遇到的问题