题外话

2018年高三毕业,想都没想过自己会成为一名程序员,但是既然选择了就坚定的走下去吧。在学校的时候都是用笔记记录自己的学习过程,没想到2020的开头不是那么完美,现在要在家上网课啦,突发奇想想把自己学到的知识分享给大家,希望像我这样的小白也能够找到适合自己的学习方法啊。最后一句啊,我们一起加油,2020会好起来的!

布斯算法

上周学习计算机组成原理这门课,讲到了布斯算法,不知道是不是由于网课的原因,总觉得自己没有很懂布斯算法,课下又查找了很多资料,但是大多数的文章描述都还是有些晦涩难懂,经过自己的一番理解,希望能够给像我这样的小白一些不一样的理解方法。

步入正题

在举例之前,先大概说一下布斯算法计算的规则:

1.如果当前的乘数位是1,前面的乘数位是0, 则从乘积中减去被乘数;

2.如果当前的乘数位是0,前面的乘数位是1,则从乘积中加上被乘数;

3.如果当前的乘数位是0/1,前面的乘数位也是0/1,即出现00/11对,那么我们直接进行移位操作,就是将当前的乘数位变成高位的乘数位;

4.我们一定要把乘数和被乘数补成相同的二进制位数表示,下面有具体解释哦;

5.虚构一个0开头,就是在最低位的后面添加一个0,作为最低位的前面的乘数位;

6.完成4后,这时我们知道乘数和被乘数的二进制表示位数如0011,位数就是4,那么如果计算结果超过2n(n)为二进制表示位数,那么我们将2n高位的其他位省略。

可能你看到这里就觉得这是个啥,我还是不明白,不要着急。一定要往下看例子哦,一定可以明白的。

无符号整数的布斯算法

假设X = 5;Y = 3,那么求X * Y。

我们将X用二进制表示为101,Y表示为11,这时我们发现X与Y用二进制表示的位数不同,也就是说X是3位,Y是2位,这是我们会碰到的第一个问题,那就是把乘数和被乘数的二进制表示补成相同的位数,记住是在高位补0哦,因为是无符号整数,因此就可以看成是正数的,所以高位补0。那X为101,Y为011,接下来开始计算两者的乘积,图片举例哦:

可能有些姐妹不理解我图中最后计算的时候用圈圈出来的那一列为什么要补上去,这就涉及到另一个容易遗忘的点啦,那就是要把第一个计算得到的补位到2n,原理我觉得我可能描述不太明白,大家有疑惑可以去看一下慕课里面电子科技大学纪禄平、罗克露、刘辉、张建、廖建明老师的计算机组成原理,里面也有关于布斯算法计算机中的计算过程,我觉得讲的还是比较明白的,嘿嘿~

无符号整数就说到这里啊~

有符号整数的布斯算法:

有符号整数的布斯算法其实跟上面的差不多,我们主要需要区分的就是最高位是符号位,就是因为原码一位乘无法解决[XY]的补等于X的补乘以Y的补,因此我们用补码一位乘的方法来解决这个问题,举例如下:

这里大家可能还有疑惑的就是小数的计算了,下面看一下这个例子就会明白啦,其实原理都是相同的啊,记得最后加上小数点就行了,跟整数的乘法是一样的哦

写的有一点点挤了,大家见谅啊,发现写完这篇文章,自己对布斯算法的理解也更加深刻了,除了上文中给大家推荐的慕课外,我也看到了一篇文章写的极好,推荐给大家,网址为https://www.cnblogs.com/xisheng/p/9260861.html(如有侵权,请联系我删除哦)

结束语

好啦,第一篇文章就到此结束啦,希望能够帮到大家,以后我也会把自己遇到的一些问题发布在这里的,希望大家会喜欢啊,加油!

计算机组成原理——补码一位乘(Booth算法)+举例+小白理解相关推荐

  1. 补码一位乘法(Booth算法)

    在补码一位乘法的求解过程中我们需要的东西:[X]补,[Y]补以及被乘数的相反数的补码[-X]补 一.运算规则 1.符号位参与计算 2.采用补码进行计算 3.被乘数X 一般取双符号位参与计算,并且让部分 ...

  2. 计算机组成用变形补码运算,计算机组成原理补码加减法运算

    计算机组成原理补码加减法运算 (37页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 补码加减法运算 2019年7月9日计算机组成原理 1 ...

  3. 计算机组成原理补码加法证明,补码加减法运算(计算机组成原理).ppt

    <补码加减法运算(计算机组成原理).ppt>由会员分享,可在线阅读,更多相关<补码加减法运算(计算机组成原理).ppt(25页珍藏版)>请在皮匠网上搜索. 1.计算机组成原理2 ...

  4. 计算机组成原理第4位,计算机组成原理4位进制计数器实验报告.doc

    计算机组成原理4位进制计数器实验报告 计算机组成原理实验一 4位二进制计数器实验 姓名:李云弟 学号:1座机电话号码5 网工1201 [实验环境] 1. Windows 2000 或 Windows ...

  5. 生成计算机组成原理:8位算术逻辑运算实验数据

     74LS181 ALU真值表如下: 代码实现:  /*计算机组成原理数据生成器使用与第一次实验实现了74LS181的逻辑结构 如果发现那个有问题请自行修改 */#include <stdio. ...

  6. BOOTH 算法的简单理解

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

  7. [计算机组成原理]-32/64位、寻址能力

    总线 计算机各种功能部件之间传送信息的公共通信干线. 按照传输信息种类划分:数据总线.地址总线.控制总线.分别用来传输数据.数据地址和控制信号.计算机发展史开始是这种简单的总线结构,然后到北桥(主要负 ...

  8. 考前自学系列·计算机组成原理·补码定点加减运算和溢出判断,浮点数的加减运算,原码的乘法

    补码定点加减运算和溢出判断 浮点数的加减运算 原码乘法

  9. 【计算机组成原理】一位全加器

    一位全加器 在设计全加器的过程中,需要考虑如下两个问题: 如何产生相加数的和数 如何产生相加数的进位数 和数的逻辑实现 和为1:0+1=11+0=1和为0:0+0=01+1=0和为1: 0 + 1 = ...

  10. 计算机组成原理6-20,计算机组成原理课后题6.20教案.ppt

    计算机组成原理课后题6.20教案 20. 用原码一位乘.两位乘和补码一位乘(Booth算法).两位乘计算x·y. (1)x= 0.110 111,y= -0.101 110: (2)x= -0.010 ...

最新文章

  1. 云炬Android开发报错处理教程 解决Android Studio kotlin等依赖下载慢,下载超时失败的问题
  2. 百叶窗设计原理 html5,Html5百叶窗效果的示例代码_html5教程技巧
  3. linux查看信息文件,lsof---Linux查看文件信息的强大工具
  4. 基于FPGA的电机控制设计(PWM)
  5. sqlserver视图
  6. CSAPP--整数的表示
  7. YOLOv4改进版重磅问世!Yolov4扩展版!Yolov4原班人马重磅推出Scaled-YOLOv4: Scaling Cross Stage Partial Network
  8. 人工智能、机器学习以及深度学习之间的联系是什么?
  9. 拓端tecdat|Python中的Lasso回归之最小角算法LARS
  10. python 获取像素颜色_python如何读取像素值
  11. 人工神经网络与遗传算法,神经网络和算法的关系
  12. c语言电子表格复制数据错误循环冗余检查,xp系统提示“数据错误(循环冗余检查)”如何解决...
  13. 用c 语言乘法运算结果,c中的基本运算
  14. OSPF详解 一看就会奥!
  15. JAVA对接发送SMS短信服务
  16. Android实现Line登录分享
  17. 告别高墙铁窗,AI或将终结传统监狱模式
  18. cocos2dx3.X shader使图片置灰
  19. 【GoLang】2.3 函数
  20. Flash与Flex3的配合

热门文章

  1. 索尼NW-A55日版改中文
  2. 什么是VXLAN?VXLAN技术细节及应用案例
  3. python 如何通过海表面高度数据计算海表地转流速、并绘制流线图
  4. bootice.exe linux 启动盘,下载BOOTICE来把你的U盘做成启动盘
  5. 小程序开发前端和后台技术你都了解吗?
  6. “Matter时代”行业再显梯队化,多强竞逐第一序列
  7. 微信小程序组件之间的传值
  8. MySQL的索引与事务(面试必考) - 细节狂魔
  9. 离散数学实验一 利用真值表法求取主析取范式以及主合取范式的实现
  10. 5-0 51单片机流水灯