定点乘法和除法

定点乘法运算

串行乘法

由图易知乘法由加法和移位运算构成。

原码乘法

原码一位数乘法

运算规则:

1. 被乘数和乘数均取绝对值参加运算,符号位为两者异或结果

2. 部分积的长度同被乘数,取n+1位,以便存放乘法过程中绝对值大于等于1的值,初值为0。

3. 从乘数的最低位yn开始判断:若yn=1,则部分积加上被乘数|x|,然后右移一位;若yn=0,则部分积加上0,然后右移一位。

4. 重复步骤3,判断n次。

由于乘积的数值部分是两数绝对值相乘的结果,因此原码一位乘法运算过程中的右移操作均为逻辑右移。

符号位单独运算,数据位取绝对值参与运算

原码二位乘法?

补码乘法

并行乘法器

乘法运算是与运算和移位运以及加法运算。
阵列乘法器
间接补码乘法电路


定点除法

  • 符号位不参与运算,结果的符号位由被除数和除数的符号位异或得出
  • 首先 +[-|y|] 的补码
  • 若结果为正数,则上商为 1, 余数左移一位
  • 若结果为负数,则上商为 0, 余数 +[|y|] 的补码,再左移一位
  • 重复上述操做直到商达到相应的精度

与定点数的乘法运算类似,定点数的出发也分为原码除法运算和补码除法运算。我们在做除法时可以一眼看出来够不够除,但是计算机却做不到,所以它需要先做加减法(被除数与除数做加减法),如果是负数说明不够除,是正数就说明够除。如果不够除就需要恢复成原来的余数以便进行下一步运算,我们把这种方法称为恢复余数法;当然也可以不恢复余数,那么这种方法就称为不恢复余数法(原码加减交替法)。我们就依次来了解它们的基本思想和运算步骤吧!

● 原码除法运算

原码除法主要采用原码不恢复余数法,特点是商符(结果的符号位)和商值(结果的数值位)是分开进行的,商符由操作数的符号位“异或”形成。

还记得原码乘法运算吗,它的规则也是符号位由操作数的符号位异或而成,数值部分是两个操作数的绝对值积。那么同样的,求商值的规则也是如此:两个操作数相除,商的符号由两个操作数的符号位异或而成,商的数值的绝对值由两个操作数的绝对值相除而成。

下面来看看原码除法运算的基本运算规则:

1) 符号位不参与运算。

2) 先用被除数减去除数(|X| - |Y| = |X| +( -|Y| )=|X| + [ -|Y| ]补 ),当余数为正(代表能除够),商为1,余数和商左移一位,再减去除数;当余数为负时,商上0,余数和商左移一位,再加上除数。

3) 当第n+1步余数为负,需要加上|Y|得到第n+1步正确的余数(余数与被除数同号)。(来自知乎)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/585785.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue2.x安装Tinymce依赖冲突解决

Vue2.x安装Tinymce依赖冲突原因 使用vue整合tinymce富文本编辑器,安装依赖时报错 报错的原因是下载版本与vue的版本对不上vue2.x版本应该使用如下指定版本依赖更合适 npm install --save "tinymce/tinymce-vue^3.1"额外依赖为 npm install --save &quo…

圣文深特公司注册

圣文深特是众多岛国之一,相对来说知名度也更高,主要得益于在这注册公司通常不需要太多的zhi本,而且注册和年度维护成本相对较低,另外圣文深特拥有发达的国际jin融服务部门,包括li岸银行和金rong机构。这些机构为国际客…

问题解决:Fatal Python error: initfsencoding: unable to load the file system codec

问题: "D:\...Climb_C_site\venv\Scripts\python.exe" "D:\...\Small_Case\change_suffix.py" Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named encodingsCurrent thread 0x…

【NC14326】Rails

题目 Rails 栈 翻译 由于原题是英文的,所以这里先翻译一下: PopPush市有一个著名的火车站。那里的山地多得令人难以置信。这个车站建于上个世纪。不幸的是,当时资金极为有限。只能建立一条地面轨道。此外,事实证明,火…

ssm013小型企业办公自动化系统的设计和开发+vue

小型企业办公自动化系统的设计与实现 摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对小型企业办公信息管理混乱&am…

OpenCV 4.9使用通用内部函数对代码进行矢量化

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV使用通用内部函数对代码进行矢量化 下一篇:OpenCV系列文章目录(持续更新中......) ​ 目标 本教程的目标是提供使用通用内部函数功…

反序列化漏洞

常见的反序列化流量特征: 像这种st2 045、068、shiro反序列化、fastjson这些java反序列化一类的流量特征 shiro就看cookie中Rememberme字段,什么都要从这里传 fastjson:可以在提交的包中找找json格式的数据,重点看一下有无rmi或…

QuillEditor无法识别显示含有div和转义字符的问题

在解决前端根据爬取抓过来的数据时&#xff0c;要显示到富文本框中&#xff0c;如下&#xff1a; <div class\"info_cont\" id\"zoomcon\">\n <p><br></p><p style\";text-align: justify;font-family: Calibri;font-size…

C++类设计:一个不同版本的日志类(完整源码)

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 如何设计日志类请看&#xff1…

小清新卡通人物静态404源码

源码介绍 小清新卡通人物静态404源码&#xff0c;可以做自己的网站错误页面&#xff0c;记事本修改上传服务器即可 源码下载 小清新卡通人物静态404源码

如何用Git在终端以可视化的方式查看提交情况

2024年4月2日&#xff0c;周二上午 要使用 Git 查看树状提交情况&#xff0c;可以使用 git log 命令的 --graph 选项。这个选项会以树状图的形式显示提交历史&#xff0c;清晰地展示每个提交的分支合并情况和分支间的关系。 git log --graph 除了 --graph 选项外&#xff0c;还…

ZooKeeper 的持久化机制

持久化的定义&#xff1a; 数据&#xff0c;存到磁盘或者文件当中。机器重启后&#xff0c;数据不会丢失。内存 -> 磁盘的映射&#xff0c;和序列化有些像。 ZooKeeper 的持久化&#xff1a; SnapShot 快照&#xff0c;记录内存中的全量数据TxnLog 增量事务日志&#xff…