2.3.2 定点原码两位乘

讨论x * y = z 采用原码两位乘法,已知x和y,如何求得z

原码两位乘法和原码一位乘法一样,符号位不参加运算
部分积和被乘数x均采用三位符号,乘数y末位每次要加一个c,c一开始是0
根据如下法则进行运算:

操作 C值变化
000 部分积加0,    右移两位 0
001 部分积加|x|, 右移两位 0
010 部分积加|x|, 右移两位 0
011 部分积加2|x|,右移两位 0
100 部分积加2|x|,右移两位 0
101 部分积减|x|, 右移两位 1
110 部分积减|x|, 右移两位 1
111 部分积加0,    右移两位 1

而乘数y用双符号还是单符号表示得根据乘数y的数值的奇偶性判断,而且最后一步移位与否也与乘数y的数值的奇偶性有关:
· 如果乘数y的尾数n的位数为偶数,则乘数y用双符号表示,最后一步不移位
· 如果乘数y的尾数n的位数为奇数,则乘数y用单符号表示,最后一步要移一位
根据以上步骤我们就可以求得x * y的源码。

举个栗子~(栗子真的超好吃的啊啊啊啊呀~)

例如:x = -0.1101,y = 0.0110,求[x*y]原。

符号位是不参与运算哒,所以已经知道最后的结果是负啦~

先写出|x|和2|x|的值再说,用三位符号位表示哦~:
|x| = 000.1101, 2|x| = 001.1010

因为y的尾数n有4位是偶数,所以乘数y要用双符号表示,而且最后一步是不用移位的~
所以 |y| = 00.0110

一开始部分积为 000.0000,乘数为00.01100(先在末尾加个c,c一开始是0)

此时y = 00.01100的最后三位是100,根据运算法则,加2|x|:
000.0000 + 001.1010 = 001.1010

对部分积右移两位,得到:000.011010,而乘数c变成了0,y移动三位,c添加在末尾,所以此时的乘数变为了00.010,最后三位是010

根据运算法则,加|x|:部分积加0,     右移两位
000.011010 + 000.1101 = 001.001110

右移两位,得到:000.01001110,而乘数c变为了0,y移动三位,c添加在末尾,所以此时的乘数变为了00.0,因为最后三位是000

因为这已经是最后一步了,因为y是偶数所以最后一步不用移位~

这样的话,外加前面已知的符号位是负号,就可以得知最后结果[x * y]原 = -1.01001110
————————————————
以上来源于CSDN博主「柳婼」的原创文章(有修改)
原文链接:https://blog.csdn.net/liuchuo/article/details/52922479

这里我需要再加一个例子,还有遇到-x时情况:

例题:用原码两位乘计算X*Y 。x=1100,y=-0111

符号结果为负.

先写出 |x| = 00011002|x| = 0011000,这题里需要用到-x,计算机中-X*的操作可以由+[-X*]补 来替代,也就是+[-X]补 = 1110100.(原码转补码)

一开始部分积为0000000,y=0111,c=0,那么y结尾加c取到的应该为110,所以需要加[-X]补,部分积:

0000000+1110100=1110100右移两位:1111101,此时c变为1

y结尾加c取为011,需要加2|x|,部分积:

1111101+0011000=0010101,右移两位:0000101,此时c变为0;

此时已经y取完了(注意最后一次移位后,若c=1,需要补充一次+|x|的操作),加上符号位1⊕0=1,所以X*Y= -1010100

2.3 二进制乘法运算(定点原码两位乘)相关推荐

  1. 【计算机组成原理】定点乘法运算之原码两位乘法

    讨论x * y = z 采用原码两位乘法,已知x和y,如何求得z 原码两位乘法和原码一位乘法一样,符号位不参加运算 部分积和被乘数x均采用三位符号,乘数y末位每次要加一个c,c一开始是0 根据如下法则 ...

  2. 定点乘法运算之原码一位乘法

    x * y = z 讨论已知x和y的情况下,怎么通过原码一位乘法方法得出z~~ 首先说下运算规则~ 1. z的符号位通过x和y的符号位进行异或运算得到~(这个很好理解哒,负负得正,正正得正,正负得负嘛 ...

  3. 2.2.2 .6定点数的乘法运算-1原码一位乘法

    XYXZNB哈哈哈哈(๑•̀ㅂ•́)و✧买!୧(﹒︠ᴗ﹒︡)୨ 加法移位运算如何实现,那这小节中我们要学习定点数的源码乘法如何实现,那由于今天窗外的雨下的很大,所以可能会有一些雨声的录入好的,那这个小 ...

  4. 计算机组成原理源码,计算机组成原理源码两位乘课程设计报告.docx

    PAGE 沈阳航空航天大学 计算机组成原理课程设计报告 院系 计算机学院 专 业 题目 定点原码两位乘法程序的设计与实现 班级 姓 名 学号 指导教师 以下内容由指导教师填写 序号 评价项目 评分 满 ...

  5. [计算机组成原理]2-8、定点数原码一位乘法

    前言 在学习定点数的原码一位乘法之前,我们要知道我们在学的是什么,定点数的原码乘法其实完全用十进制的乘法规则来计算,只需要将逢十进一改为逢二进一即可: 既然我们都知道定点数的原码乘法了,我们为什么还要 ...

  6. 加减法、原码一位乘法、Booth算法、恢复余数法、加减交替法符号位及小结

    在学习计算机组成原理的计算方法时,或为步骤疑惑,或为题目难倒,本文主要介绍思路以及对常用类型小结 个人总结,仅供参考,能力有限,难免出错,欢迎大家讨论,书籍参考唐朔飞版<计算机组成原理> ...

  7. 【细碎知识2】定点数的乘除运算(原码一位乘、恢复余数法、加减交替法)

    目录 1.定点数的乘法 1.1 原码一位乘 2.定点数的除法 2.1 恢复余数法 2.2 加减交替法 2.3 比较恢复余数法和加减交替法 方法要搭配例题一起看,才能看懂 1.定点数的乘法 定点数的乘法 ...

  8. 计算机组成二进制除法,计算机组成原理:3.4.1 定点原码 除法器

    <计算机组成原理:3.4.1 定点原码 除法器>由会员分享,可在线阅读,更多相关<计算机组成原理:3.4.1 定点原码 除法器(28页珍藏版)>请在人人文库网上搜索. 1.计算 ...

  9. (计算机组成原理)第二章数据的表示和运算-第二节5:定点数乘法运算(原码/补码一位乘法)

    文章目录 一:乘法运算基本思想 二:原码一位乘法 (1)实现原理 (2)手算模拟 三:补码一位乘法( B o o t h Booth Booth

最新文章

  1. mqtt+htttp+websocket
  2. 参考灵敏度_和平精英2021灵敏度分享码一览 S11灵敏度压枪目前最稳调整攻略
  3. [LCS]半个月的成果,用RTCClient开发的Robot!
  4. 单核工作法15:循序渐进
  5. 使用matplotlib做动态排名图
  6. 生态和能力是国内自研操作系统发展的关键
  7. python做些什么项目_Python 的练手项目有哪些值得推荐
  8. (设计模式之一)浅析简单工厂模式
  9. Leetcode - Permutations I,II
  10. 计算机网络—计算机网络核心
  11. 1. 3款免费好用的Markdown笔记应用,可以替代印象笔记
  12. hud android,Android 加载等待控件 ZFProgressHUD
  13. 疑难杂症 | Win10解压文件后乱码
  14. 两节锂电池保护IC,芯片电路图如何设计
  15. 可以提高DeepFaceLab(DeepFake)合成最终视频速度的方法
  16. 图像生成质量fid、inception score、KID计算
  17. nginx url中带中文不能访问
  18. python抢红包脚本_Python自动抢视频红包,仅供学习!
  19. 数据库--循环语句:for循环
  20. Python如何把图片转为Base64字符串

热门文章

  1. 2019高考数学-概率问题
  2. CERC2014 Outer spaceinvaders(区间DP,推理)
  3. 文件服务器建立,文件服务器建立
  4. Itextsharp下根据Echarts图像生成pdf
  5. ESP8266乐鑫版本的(支持云端升级 (Boot 模式)烧写方法,(V1.5.4官方介绍如下)(BOOT模式)...
  6. 离群值是什么意思_学术必备!代谢组学及数据分析相关问题汇总
  7. oracle基础|oracle的认知|Select用法详解
  8. android电池充电时间计算
  9. 非侵入式负荷监测-采集设备
  10. PIC单片机延时问题