定点数的运算

news2024/9/24 14:28:40

目录

1.定点数的移位运算

1.1算数移位

数学含义:

规律总结:

1.2逻辑移位

1.3循环移位

不带进位位

带进位位

2.定点数的加减运算

3.定点数的乘除运算

3.1原码

一位乘法

除法

3.2补码

一位乘法

除法


1.定点数的移位运算

1.1算数移位

数学含义:

左移乘以二,右移除以二。

符号位不参与移位,保持不变。

码制码值左移右移空位添加
正数原码=反码=补码0010 11100101 11000001 01110

码制码值左移右移空位添加
负数原码1010 11101101 11001001 0111左移:0
右移:0
反码1101 00011010 00111110 1000左移:1
右移:1
补码1101 00101010 01001110 1001左移:0
右移:1

        其实仔细观察会发现:由于补码是在反码的基础上加1,所以从左往右,以补码和反码的不同的位为界限的话,

界限左边:补码反码一样,所以进行右移时最左边会出现空缺,可以像反码一样直接补1。

界限右边:则不同 ,进行左移时最右边会出现空缺,需要补0。

规律总结:

码制添补代码
正数原码0
反码0
补码0
负数原码0
反码1
补码左移添0
右移添1

1.2逻辑移位

 左移,右移都补0,移出的位舍弃

1.3循环移位

不带进位位

 用移出的位补上空缺

带进位位

 移出的位存入进位位,原进位位补上空缺

2.定点数的加减运算

加法:逢2进1,小学列算式计算;

假设我们要计算 00001010 + 00001011 (逢 2 进 1)

  00001010
+ 00001011
------------
  00010101

个位 0 + 1 = 1,十位 1 + 1 = 10 ,逢 2 进 1 得到 0 并进位 1 到百位,以此类推,所以结果是 00010101 ,即十进制的 21 。

减法:将减数化为补码,与被减数相加,接着逢2进1,小学列算式计算;

计算 00001010 - 00001011 。

00001010 + (-00001011)= 00001010 + [11110101]补 :

求出被减数的补数,也就是补码形式表示的-00001011,然后与被减数 00001010 相加:

  00001010
+ 11110101
------------
  11111111

但因为这是通过补码计算得到的结果,化为原码:10000001 ,实际结果应该是 10 - 11 = -1 。

总结来说,一个数减去另一个数就相当于:这个数加上另一个数的补数:

[x - y]补 = [x]补 + [-y]补

3.定点数的乘除运算

3.1原码

一位乘法

设机器字长为n+1=5位(含1位符号位),[x]原=1.1101,[y]原=0.1010,采用原码一位乘法求x·y

符号单独处理: 符号位 =x 异或 y

数值位取绝对值进行乘法计算

采用运算器模拟:

原码一位乘法: 机器字长n+1数值部分占n位

符号位通过异或确定;

数值部分通过被乘数和乘数绝对值的n轮加法、移位来完成并根据当前乘数中参与运算的确定(ACC)加什么。

        若当前运算位=1,则(ACC)+[|x|]原;

        若=0,则(ACC)+0。

        每轮加法后ACC、MQ的内容统一逻辑右移 

1.初始时,通用寄存器中存被乘数,累加器中需要存乘积的高位,MQ中存乘数以及乘积的地位,注意累加器中的值最开始需要置0。

2.MQ中的第五位是零,ALU往ACC中加0,ACC与MQ中的值整体逻辑右移,超出的位丢弃。 

3.MQ的最后一位是1,ALU向ACC中加上被乘数,接着 ACC与MQ中的值整体逻辑右移,超出的位丢弃。

4. MQ中的第五位是零,ALU往ACC中加0,ACC与MQ中的值整体逻辑右移,超出的位丢弃。

5.MQ的最后一位是1,ALU向ACC中加上被乘数,接着 ACC与MQ中的值整体逻辑右移,超出的位丢弃。

最后,由于符号位不参与运算,所以停止,将符号位单独异或的结果置为结果的符号位,结果正确。

其实不难发现,乘法就是做乘数次被乘数加上被乘数的加法! 

除法

设机器字长为5位(含1位符号位,n=4),x=0.1011,y=0.1101,采用原码加减交替除法求x/y

1.符号位与数值位分开处理

        0异或0 = 0

2.数值位做加减交替法

|x|=0.1011,|y|=0.1101,[|y|]补=0.1101,[-|y|]补=1.0011 

流程图:

 

最后得x/y=+0.1101,余0.0111x2^-4 

3.2补码

一位乘法

n轮加法、算数右移,加法规则如下:

        辅助位-MQ中最低位=1时,(ACC)+[x]补

        辅助位-MQ中最低位=0时,(ACC)+0

        辅助位-MQ中最低位=-1时,(ACC)+[-x]补

补码的算数右移:

        符号位不动,数值位右移,正数右移补0,负数右移补1(符号位是啥就补啥)

实例: 

 设机器字长为5位(含1位符号位,n=4),x = -0.1101,y = +0.1011,采用Booth算法求x乘以y

        [x]补=1.0011,[-x]补=0.1101,[y]补=0.1011

 采用运算器模拟:

1.ACC存乘积高位,MQ存乘积低位,通用寄存器X存被乘数,MQ带一个拓展的辅助位。所以ACC以及X也相应拓展,并采用双符号位。 

2.辅助位-MQ最地位等于-1,ACC+[-x]补,之后ACC和MQ整体算数右移 

3. 辅助位-MQ最地位等于0,ACC+0,之后ACC和MQ整体算数右移 

4. 辅助位-MQ最地位等于1,ACC+[x]补,之后ACC和MQ整体算数右移 

5. 辅助位-MQ最地位等于-1,ACC+[-x]补,之后ACC和MQ整体算数右移 

 6.由于是补码,所以符号位在最后也要参与运算,辅助位-MQ最地位等于1,ACC+[x]补。

除法

 设机器字长为5位(含1位符号位,n=4),x=+0.1000,y=-0.1011,采用补码加减交替除法求x/y

[x]补=00.1000,[y]补=11.0101,[-y]补=00.1011

补码除法:
        符号位参与运算。
        被除数/余数、除数采用双符号位
        被除数和除数同号,则被除数减去除数;


异号则被除数加上除数:
        余数和除数同号,商1,余数左移一位减去除数;
        余数和除数异号,商0,余数左移一位加上除数。

重复n次

 [x/y]补=1.0101,余0.0111x2^-4.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

org.gitlab4j使用报错问题

报错如上,刚开始报错Caused by: java.lang.NoClassDefFoundError: javax/ws/rs/core/StreamingOutput。 原因:项目是JDK17引起的版本不兼容 解决:升级高版本即可。

4.1 图标资源、光标资源

图标资源 添加资源 添加资源(可视化完成) 注意图标的大小,一个图标文件中,可以有多个不同大小的图标。加载 LoadIcon 是 Windows API 中用于加载图标资源的函数 HICON WINAPI LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName );参数说明 1.hInstanc…

牛客JS题(二十七)Getter

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; class基础用法getter的应用setter的应用 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charsetutf-8></head><body><script type"text/javascript&qu…

机器人帮助文档

文章目录 机器交流使用群使用图例1. 查看机器人使用文档2. 直接问问题&#xff08;系统默认AI&#xff09;3. 系统默认AI切换4. 直接问问题&#xff08;指定讯飞星火AI&#xff09;5. 直接问问题&#xff08;指定百度文心AI&#xff09;6. 直接问问题&#xff08;指定谷歌AI&am…

Python的全局变量

我来举个例子 像下面&#xff0c;我把全局变量写在函数外面&#xff0c;导致func函数里得不到变量 正确做法应该是在函数内引入全局变量&#xff0c;利用global关键字 请注意&#xff01;由于1的操作导致全局变量发生改变&#xff0c;可能会影响到其他引用全局变量的地方。这点…

基于统计检验与机器学习研究客户对保险兴趣的因素

1.项目背景 保险单是一种安排&#xff0c;公司承诺为特定的损失、损坏、疾病或死亡提供赔偿保证&#xff0c;以换取支付指定的保费。保费是客户需要定期向保险公司支付的一笔钱&#xff0c;以提供此保证&#xff0c;与医疗保险一样&#xff0c;也有车辆保险&#xff0c;客户每…

【Python】requests获取网络响应的时候,遇到url超过最大重试次数的解决方法

我们在使用requests连接网址后&#xff0c;获取网络响应的时候&#xff0c;有时候可能会遇到这样的问题&#xff1a; 问题&#xff1a; Maxretries exceeded with url: /tags-%E9%A1%B9%E7%9B%AE-5.html(Caused by SSLError(SSLEOFError(8,‘EOFoccurred in violation of prot…

大模型层数过多影响

当层数过多时候&#xff0c;梯度是累乘关系&#xff0c;如100 最后可能超过f16精度 梯度爆炸 后面梯度和权重值特别大 梯度消失 后台梯度和权重趋近于0 梯度合理范围e-6 到 e3 优化方法 1、优化点 乘法改为加法 resnet lstm 2、归一 梯度归一&#xff0c;大于小于阈值…

防范 Active Directory 攻击

关注公众号网络研究观获取更多内容。 Active Directory (AD) 是组织 Windows 网络的核心&#xff0c;可默默协调用户访问、身份验证和安全性。 但您真的了解它的工作原理吗&#xff1f;本博客将揭开 AD 的层层面纱&#xff0c;揭示其核心组件以及它们如何实现集中控制。探索 …

【ARM CoreLink 系列 4.2 -- NIC-400 控制器详细介绍】

请阅读【ARM AMBA 总线 文章专栏导读】 文章目录 NIC-400 TopNIC-400 Terminology(术语介绍)AMBA Slave Interface BlockSwitchDefault SlaveInterface BlockGlobal Programmers ViewAMBA Master interface BlockNIC-400 GPV(Global Programmers View)NIC-400 SwitchNIC-400 …

为什么用代理IP访问不了网站?如何解决?

代理IP可以为用户在访问网站时提供更多的便利性和匿名性&#xff0c;但有时用户使用代理IP后可能会遇到无法访问目标网站的问题。这可能会导致用户无法完成所需的业务要求&#xff0c;给用户带来麻烦。使用代理IP时&#xff0c;您可能会因为各种原因而无法访问您的网站。下面小…

柏林噪声(Perlin Noise)

要获得看起来很酷的实心纹理&#xff0c;大多数人使用某种形式的Perlin噪声。Perlin噪声返回类似下图的噪声。 Perlin噪声的一个关键部分是它是可重复的&#xff1a;它接受一个3D点作为输入&#xff0c;并总是返回相同的随机数字。附近的点返回相似的数字。Perlin噪声的另一个重…

Spacedrive :开源跨平台文件管理器!!【送源码】

项目介绍 Spacedrive 是一款革命性的开源跨平台文件管理器&#xff0c;它采用先进的虚拟分布式文件系统 (VDFS) 技术&#xff0c;为你带来前所未有的文件管理体验。无论是云端服务还是离线硬盘&#xff0c;Spacedrive 都能将它们统一在一个易于使用的界面中&#xff0c;让你轻松…

超声波清洗机哪个牌子的好?推荐四款性价比高的超声波眼镜清洗机

眼镜是现代生活中的必需品&#xff0c;但很多人对如何正确清洁眼镜感到困扰。传统清洁方法可能会在清洗过程中损伤眼镜&#xff0c;比如用普通肥皂或清水清洗时容易划伤镜片。为了解决这个问题&#xff0c;家用眼镜超声波清洗机应运而生。然而&#xff0c;市场上品牌繁多&#…

亲测好用!2024年四大ai智能写作工具推荐!

在快节奏的工作生活中&#xff0c;我一直在寻找能够提升写作效率的工具。经过一番探索&#xff0c;我发现了四款AI智能写作工具。它们不仅极大地提升了我的写作速度&#xff0c;还保证了内容的质量。 笔灵AI写作 链接&#xff1a;https://ibiling.cn 作为一名自媒体人&#…

免费高清图片素材库,我推荐这8个~赶紧收藏

找高清图片素材就上这8 个网站&#xff0c;我强推。免费、付费、商用的素材都能找到&#xff0c;赶紧先收藏起来吧&#xff01; 菜鸟图库 美女图片|手机壁纸|风景图片大全|高清图片素材下载网 - 菜鸟图库 网站主要为新手设计师提供免费素材&#xff0c;这些素材的质量都很高…

CSDN博文中的数学公式显示——LaTeX数学公式一般语法

$MarkDown支持&#xff0c;HTML5文本也是支持$定制的。 (笔记模板由python脚本于2024年08月07日 21:18:36创建&#xff0c;本篇笔记适合初通Python&#xff0c;熟悉六大基本数据(str字符串、int整型、float浮点型、list列表、tuple元组、set集合、dict字典)的coder翻阅) 【学习…

explorer.exe没有注册类

管理员身份进入cmd面板 输入sfc /scannow 进行扫描&#xff0c;会自动修复异常文件 验证100% 后&#xff0c;输入 start explorer.exe 进行验证 这个问题就解决了

【Week-G6】CycleGAN-风格迁移网络-pytorch

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制 本次学习内容为适用于风格迁移的CycleGAN网络 一、说明 本地文件目录&#xff1a; 程序修改的部分&#xff1a; 二、训练 等待训练完成…

相机标定——小孔成像、相机模型与坐标系

小孔成像 用一个带有小孔的板遮挡在墙体与物之间&#xff0c;墙体上就会形成物的倒影&#xff0c;我们把这样的现象叫小孔成像。 用一个带有小孔的板遮挡在墙体与物之间&#xff0c;墙体上就会形成物的倒影&#xff0c;我们把这样的现象叫小孔成像。前后移动中间的板&#xff…