计算机组成原理之浮点运算

news2024/11/22 22:43:45

1、浮点运算步骤

①0操作数的检查,看有无简化操作的可能。
②比较阶码大小并完成对阶(小阶向大阶对齐)。
③尾数进行加或减运算。
(在进行尾数加减前,浮点运算器会自动把原码形式的尾数转换成补码形式。)
④结果规格化并进行舍入处理。
 判断有无溢出,有则右规
 再判断是否符合补码一般规格化形式,否则左规
 (尾数右移一位,阶码加一;尾数左移一位,阶码减一。)

规格化总结:
①原码规格化后
  正数为0.1××××××××…××的形式
 负数为1.1××××××××…××的形式
②补码规格化后
 正数为0.1××××××××…××的形式
 负数为1.0××××××××…××的形式

舍入处理:就近舍入(0舍1入):类似“四舍五入”。

溢出判断和处理:
①阶码上溢,一般认为是+∞和-∞。
②阶码下溢,则数值为0.
③尾数上溢,两个同符号位的数相加。处理方法是尾数右移,阶码加一。
④尾数下溢。尾数右移时,最低位从最右端流出,要进行舍入处理。

2、例题分析

题目:设x=+2^010×0.11011011,  y=-2^100×0.10101100,求x+y.

①0操作数检查(非0)
②对阶:阶码对齐后才能加减。规则是阶码小的向阶码大的数对齐。(标记处为符号数)
若△E=0,表示两数阶码相等Ex=Ey;
若△E>0,表示两数阶码相等Ex>Ey;
若△E<0,表示两数阶码相等Ex<Ey;
当Ex≠Ey时,要通过尾数的移动以改变Ex或Ey,使之相等。
[x]浮=00010,00.11011011; [y]浮=00100,11.01010100;
阶差=[Ex]补-[Ey]补=00010-00100=11110
即阶差为-2,Mx右移两位(尾数右移),Ex加2.
[x]浮=00100,00.00110110(11)
③尾数相加
== 00==.00110110(11)+11.01010100=11.10001010(11)
④结果规格化
若两符号位不等,即溢出时,则右规
最高有效位与符号位相同,表明不规格化,需左规

3、补充例题

在这里插入图片描述
(1)若 f1(n)的计算结果为(7F80 0000)16,则其二进制数真值是什么?(5 分)
(2)若 n=24,则 f1(n)的结果用 IEEE 754 表示为什么?(用十六进制数表示)
(3)若将 float 改为 int,则函数 f1(0)是否会出现死循环?理由是什么?

解题:(7F70 0000)16=(0111 1111 0111 0000 0000 0000 0000 0000)2
根据 IEEE 754 标准中 32 位格式的规定可知,符号位 S=0,阶码 E=11111110,尾数M=1110000 0000 0000 0000 0000。 (S、E、M 各 1 分)
因此,二进制真值为:+2^(254-127)×1.111=+1.111×2^127
(2)若 n=24,本质上就是用 IEEE754 标准记录二进制数11 … 1,其中包含 25 个 1。写成规格化形式为:+11 … 1 = +1.11 … 1 × 2
24,因此有 S=0、E=24+127=151 和 M=1 … 1(即
24 个 1)。然而,32 位的 IEEE754 标准中,尾数只有 23 位,无法放下 24 个 1,因此需要采用 0 舍 1 进法进行处理,得到+(2.0)10 × 2
^24 = +(1.1 × 2^25)2。 (1 分)
因此,实际的 S、E、M 字段分别为 S=0、E=25+127=152、M=1000… 0,即结果为:
0 10011000 1000 0000 0000 0000 0000 000
结果用十六进制表示为:(4C40 0000)16
(3)若将函数 f1(n)中的 float 改为 int,则会出现死循环。
理由如下:对于函数 f1(0),有 n=0。由于 n 属于 unsigned int 型,它的类型级别比 int 型高,因此在执行 n-1 后需要将 n-1 的结果-1 值转换为 unsigned int 类型。由于-1 用补码表示为 32 个 1,因此 n-1 的结果是 32 个 1,即 32 位无符号数的最大值。这样判断条件 i<=n-1 将永远成立,从而进入死循环。

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

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

相关文章

像素相关知识

物理像素 指的是物理设备上真实的小方块个数&#xff0c;就是拿放大镜看屏幕时看到的像素点&#xff0c; 每个物理像素具体的大小是不固定的&#xff0c;不同设备不相同&#xff0c;由厂家设置 逻辑像素 指的就是我们css用到的px这个单位的像素 像素比&#xff08;DPR&…

GB/GMP法规内容对沉降​菌、浮游菌监测​点设置相关规定及要求详解

微生物鉴定一直是生物、食品、医药等领域非常重要的监控指标&#xff0c;可以帮助预测药品生产过程以及无菌生产环境的风险。对于许多企业而言&#xff0c;建立厂房环境微生物菌种库对于微生物污染控制来说非常关键&#xff0c;环境菌种库的建立可以帮助制定洁净区消毒灭菌程序…

Leetcode40 组合之和2

给定一个候选人编号的集合 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意&#xff1a;解集不能包含重复的组合。 解题思路&#xff1a;回溯剪枝 代码&#xff…

LeetCode--HOT100题(31)

目录 题目描述&#xff1a;25. K 个一组翻转链表&#xff08;困难&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;25. K 个一组翻转链表&#xff08;困难&#xff09; 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表…

麦肯锡重磅发布2023年15项技术趋势,生成式AI首次入选,选对了就是风口

两位朋友在不同群里分享了同一份深度报告。 一位是LH美女&#xff0c;她在“AIGC时代”群里上传了这份文档&#xff0c;响应寥寥&#xff0c;可能是因为这些报告没有像八卦文那样容易带来冲击。 你看韩彬的这篇《金融妲己&#xff1a;基金公司女销售的瓜&#xff0c;一个比一个…

Ingress企业实战:金丝雀与蓝绿发布篇

背景 现如今&#xff0c;越来越多的应用采用了微服务架构&#xff0c;这也导致了应用数量相比传统模式更多&#xff0c;管理更加复杂&#xff0c;发布更加频繁&#xff0c;如果直接将新版本上线发布给全部用户。一旦遇到线上事故&#xff08;或BUG&#xff09;&#xff0c;对用…

哪些客户适合打Cold Call?

都知道Cold Call是外贸营销中一种重要的销售方式&#xff0c;相比邮件跟进&#xff0c;它可以可实时交流&#xff0c;获取需求&#xff0c;解决问题&#xff0c;展示人情味&#xff0c;提升好感度&#xff0c;提高转化率。但由于陌生性&#xff0c;当下如果没有需求的话&#x…

“万恶”之源的KieServices,获取代码就一行,表面代码越少里面东西就越多,本以为就是个简单的工厂方法,没想到里面弯弯绕绕这么多东西

Drools用户手册看了得有一段时间了&#xff0c;现在开始看源码了&#xff0c;因为每次使用drools都会看见这么一段代码&#xff1a; 代码段1 起手代码 KieServices ks KieServices.Factory.get(); 那我就从这段代码出发开始研究drools的源码吧&#xff0c;这么一小段代码起初…

文件操作/IO

文件 文件是一种在硬盘上存储数据的方式&#xff0c;操作系统帮我们把硬盘的一些细节都封装起来了&#xff0c;程序员只需要了解文件相关的接口即可&#xff0c;相当于操作文件就是间接的操作硬盘了 硬盘用来存储数据&#xff0c;和内存相比硬盘的存储空间更大&#xff0c;访问…

代码运行出现:No module named ‘torch_geometric‘

这是没有torch_geometric库导致的&#xff0c;但是不能像一般库安装‘pip install 库名’或者‘conda install 库名’进行安装&#xff0c;经常会报错!!! 需要先安装四个小部件再安装torch_geometric&#xff0c;具体安装步骤如下&#xff1a; step 1&#xff1a;查看自己环境…

简约时尚的健康手表,智能守护每一刻,dido Y60上手

智能手表是现在很流行的一种智能设备&#xff0c;很多品牌都推出了各种各样的产品&#xff0c;但是大部分都更侧重功能和运动的方面&#xff0c;健康监测往往只是配角&#xff0c;而随着人们对自己的健康越来越重视&#xff0c;有些朋友只是单纯的需要一块专业的健康监测手表。…

SIFT 算法 | 如何在 Python 中使用 SIFT 进行图像匹配

介绍 人类通过记忆和理解来识别物体、人和图像。你看到某件事的次数越多,你就越容易记住它。此外,每当一个图像在你的脑海中弹出时,它就会将该项目或图像与一堆相关的图像或事物联系起来。如果我告诉你我们可以使用一种称为 SIFT 算法的技术来教机器做同样的事情呢? 尽管…

部署私有知识库项目FastGPT

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统&#xff0c;提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排&#xff0c;从而实现复杂的问答场景。 项目源码&#xff1a; GitHub - c121914yu/FastGPT: A platform that uses the Open…

【推荐】7个可以改变我们在3dMax中工作方式的插件

​以下给大家介绍的这些插件&#xff0c;将改变我们在3d Max中的工作方式&#xff0c;让生活更加轻松。 Glue Utility&#xff08;粘合实用程序&#xff09; 这些年来&#xff0c;这个工具改变了我的游戏规则。它使我能够执行许多任务&#xff0c;否则这些任务要么是不可能…

在矩池云使用 ChatGLM2-6B ptuning

本文参考 ChatGLM2-6B 官方文档&#xff0c;在矩池云复现了对于 ChatGLM2-6B 模型基于 P-Tuning v2 的微调。P-Tuning v2 将需要微调的参数量减少到原来的 0.1%&#xff0c;再通过模型量化、Gradient Checkpoint 等方法&#xff0c;最低只需要 7GB 显存即可运行。 官方文档地址…

一百五十六、Kettle——Linux上安装的Kettle9.3连接ClickHouse数据库(亲测,附流程截图)

一、目标 kettle9.3在Linux上安装好后&#xff0c;需要与ClickHouse数据库建立连接 二、前提准备 &#xff08;一&#xff09;在Linux已经安装好kettle并可以启动kettle &#xff08;二&#xff09;已知kettle和ClickHouse版本 1、kettle版本是9.3 2、ClickHouse版本是21…

深度学习优化器

1、什么是优化器 优化器用来寻找模型的最优解。 2、常见优化器 2.1. 批量梯度下降法BGD(Batch Gradient Descent) 2.1.1、BGD表示 BGD 采用整个训练集的数据来计算 cost function 对参数的梯度&#xff1a; 假设要学习训练的模型参数为W&#xff0c;代价函数为J(W)&#xff0c;…

项目管理工具探析:详细介绍四种常用选择

市场上的项目管理工具&#xff0c;主要是解决项目计划制定、任务协作、文档协作这几方面的问题&#xff0c; 下面简单聊聊一些自己用过的工具&#xff1a; 1、Excel/在线协作表格 如果项目简单&#xff0c;任务数少&#xff0c;没什么依赖&#xff0c;那么就可以用Excel来做项目…

静电放电发生器的操控模式和释放模式有哪些方式

静电放电是一种自然现象 &#xff0c;当两种不同介电强度的材料相互摩擦时&#xff0c;就会产生静电电荷&#xff0c;当其中一种材料上的静电荷积累到一定程度&#xff0c;在与另外一个物体接触时&#xff0c;就会通过这个物体到大地的阻抗而进行放电。静电放电及影响是电子设备…

四大运营商的大流量卡测评,看完您会选哪个运营商?

很多朋友都说网上的流量卡资费是真的便宜&#xff0c;但是小编认为资费便宜归便宜&#xff0c;但是运营商的小心思也有不少。 ​ 今天小编就带大家看一看三大运营商推出的正规流量卡都有哪些小心思&#xff1f; 首先&#xff0c;移动推出的线上大流量卡数量是最少的&#xff…