浮点数在内存中的运算

news2024/11/24 2:49:38

他们力量的源泉,是值得信赖的搭档以及想要保护的对象还有强大的敌人

本文收录于青花雾气-计算机基础

往期回顾

从汇编代码探究函数栈帧的创建和销毁的底层原理

从0到1搞定在线OJ

数据在内存中的存储

计算机存储的大小端模式

目录

浮点数的二进制转化及存储规则等

浮点数计算规则

1.指数向高位对齐

2.运算过程中的进位问题


大家好,我是纪宁。

这篇博客将给大家介绍浮点数在内存中是如何进行计算的

浮点数的二进制转化及存储规则等

在上次介绍了数据在内存中是如何存储的,其中就介绍了浮点数是如何在内存中存储的

不懂浮点数的二进制是如何转化和存储的可以去看我的这篇博客

数据在内存中的存储

其中详细介绍了浮点数的二进制如何转化以及国际标准IEEE规定的浮点数在内存中的存储方法

以下为简单复习

一个浮点数可以统一写成   (-1)^S * M * 2^E,其中(-1)^S表示这个浮点数的正负,当S=0时,表示这个浮点数为正值;S=1表示这个浮点数为负值。M表示有效数字,大于等于1,小于2,上例中有效数字M就是1.01101。2^E表示指数位,上例中E=2。如图所示

以5.625举例子,5.625的二进制位形式是101.101

这是浮点数在内存中的存储形式

E+127/255存入,M去掉1存入

说了这么多,但是浮点数在内存中到底是如何计算的呢?

其实浮点数计算和存储的时候还是略有差别

浮点数计算规则

1.指数向高位对齐

什么意思呢?

如果两个浮点数进行相加,一个的E=3,一个的E=2,那么就要将E=2的浮点数转化为E=3的浮点数

转化方法就是改变这个浮点数的有效数字,将有效数字再次前移

例如5.625要与9.125相加

5,625的E=2,有效数字为1.01101

9.125的E=3,有效数字为1.001001

5.625的E小于9.125的E,所以将5.625的E改为3,同时将它的有效数字前移1位

从1.01101变成0.101101

所以在计算的时候,5.625的V就变了,如图

将改变之后的M部分按二进制位运算方法运算,这个结果就是最终结果的有效数字

再将这个数字乘指数部分即可以得到最终结果

2.运算过程中的进位问题

上例解释了5.625和9.125的相加,但他们有效数字的小数点后第一位的数字加起来没有超过1,那么该如何计算呢?计算完又将如何存储?

例如进行5.625+9.75的浮点数运算

9.75----->1001.11----->1.00111      E=3

可以看出,当出现进位的情况,在计算的时候正常计算即可,只需要存储的时候有所差别

因为计算M结果的时候并不是在存储位置本身的地方进行的,是先取出来计算,然后计算完将结果重新储存进去,所以不用担心会有溢出的情况

内存有足够的空间去存储

那么浮点数在内存中的运算到这里就结束了,因为计算机CPU中只有加法

至于浮点数的乘法、减法、除法等,都可以转化为浮点数的‘加法’

如一个浮点数减一个浮点数

可以转化为一个浮点数加另一个浮点数的负数,其他都是类似的原理

在这里插入图片描述

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

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

相关文章

pySCENIC单细胞转录因子分析更新:数据库、软件更新

***pySCENIC全部往期精彩系列:1、PySCENIC(一):python版单细胞转录组转录因子分析2、PySCENIC(二):pyscenic单细胞转录组转录因子分析3、PySCENIC(三):pyscen…

我的创作纪念日之这四年的收获与体会

第一次来写自己的创作纪念哈,不知不觉都已经过去整整四年了,好与不好还请大家担待: 1、机缘 1. 记得是大一、大二的时候就听学校的大牛说,可以通过写 CSDN 博客,来提升自己的代码和逻辑能力,以及后面工作…

图解LeetCode——994. 腐烂的橘子

一、题目 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回直到单元格…

醒醒吧,连新来的实习生都在进阶自动化,你还在点点点吗,聪明人都在提升自己!

5年测试老兵了,真的很迷茫,觉得自己不再提升自己,真的会被实习生替代。 很多朋友跟我吐槽,说自己虽然已经工作3-4年,可工作依旧是点点点,新来的实习生用一周的时间就把工作内容学会了,他的压力…

让博客支持使用 ChatGPT 生成文章摘要是一种什么样的体验?

让博客支持使用 ChatGPT 生成文章摘要是一种什么样的体验? 起因 Sakurairo 主题支持了基于 ChatGPT 的 AI 摘要功能,我有点眼红,但是因为那是个主题限定功能,而我用的又是 Argon,遂想着让 Argon 也支持 AI 摘要功能。…

【spring】spring是什么?详解它的特点与模块

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、spring介绍 二、spring的特点(七点) 1、简化开发 2、AOP的支持 3、声明式事务的支持 4、方便测试 5、…

springcloud 父项目建立(一)

我们开发项目,现在基本都用到maven,以及用父子项目,以及公共模块依赖,来构建方便扩展的项目体系; 首先我们建立父项目 microservice ,主要是一个pom,管理module,以及管理依赖&#x…

shell实现多并发控制

背景: 遇到一个业务需求,一个上位机需要向多个下位机传送文件,当前的实现是for循环遍历所有下位机,传送文件,但是此种方法耗时太久,需要优化。因此可以通过并发的方式向下位机传送文件。 这边写一段测试代…

【Vue3 第二十七章】路由和状态管理

一、路由 1.1 服务端路由 与 客户端路由 服务端路由 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML,然后重新加载整个页面。客户端路…

人机交互学习-2 人机交互基础知识

人机交互基础知识 交互框架作用执行/评估活动周期 EEC四个组成部分七个阶段和两个步骤 执行隔阂&评估隔阂扩展EEC模型四个部分两个阶段 交互形式命令行交互菜单驱动界面基于表格的界面直接操纵问答界面隐喻界面自然语言交互交互形式小结 理解用户信息处理模型信号处理机人类…

“秩序与自由”——超详细的低代码开发B端产品前端页面设计规范

Hi,我们是钟茂林和李星潮,来自万应低代码 UI 设计团队。 编辑搜图 编辑搜图 左:钟茂林 右:李星潮 在过去,B 端应用通常只在企业内部员工中使用,与 C 端产品数以千万计的用户相比显得少之…

Pycharm 配置Django 框架(详解篇)

首先你必须具备pycharm 专业版 / 社区版也可以 打开pycharm专业版 找到在最下方菜单栏找到 Terminal 第二步:检查自己的python版本 python --version 第三步: 寻找和自己python版本匹配的django版本 (图片来源: 化雨随风 …

【NLP模型】文本建模(2)TF-IDF关键词提取原理

一、说明 tf-idf是个可以提取文章关键词的模型;他是基于词频,以及词的权重综合因素考虑的词价值刻度模型。一般地开发NLP将包含三个层次单元:最大数据单元是语料库、语料库中有若干文章、文章中有若干词语。这样从词频上说,就有词…

华为OD机试真题 JavaScript 实现【最小传输时延】【2023 B卷 100分】,附详细解题思路

一、题目描述 某通信网络中有N个网络节点,用1到N进行标识。 网络通过一个有向无环图表示,其中图的边的值表示结点之间的消息传递时延。 现给定相连节点之间的时延列表times[i] {u,v,w},u表示源节点,v表示目的节点,…

C++入门攻略

C补足C语言部分缺陷 1.命名空间:1.1 命名空间namespace关键字1.命名空间中可以定义变量、函数、类型2.命名空间可以嵌套3.相同命名空间共存 1.2 命名空间的使用方式:1.名称加用域作用限定符的方式访问(同上)2.使用using引入某个空…

现在学大数据还来得及么

种一棵树最好的时机是十年前,其次是现在。如果你想学,那么就一定来的及。 Python 已成利器 在大数据领域中大放异彩 Python,成为职场人追求效率的利器,因为不管什么工作,数据都会是工作的一部分,有数据的…

学习【菜鸟教程】【C++ 继承】

链接 1. 教程原文 面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。 当创建一个类时,您不需要重新编写新的…

精通postman教程(一)下载及安装详解

作为一名测试工程师,那么Postman绝对是大伙必备的工具之一。 在这个系列教程中,我将为大伙详细讲解如何使用Postman进行API测试。 今天我将先为大伙介绍Postman的下载安装方法,让你们快速上手这款工具。 一、下载 下载地址:Do…

基于Java学院党员管理系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

Java学习笔记(视频:韩顺平老师)4.0

如果你喜欢这篇文章的话,请给作者点赞哟,你的支持是我不断前进的动力。 因为作者能力水平有限,欢迎各位大佬指导。 目录 如果你喜欢这篇文章的话,请给作者点赞哟,你的支持是我不断前进的动力。 控制结构 顺序 分…