浮点数在内存中的运算

本文介绍了浮点数在内存中的存储方式,包括IEEE标准下的二进制表示,以及计算过程中指数对齐和进位处理的方法。通过举例说明了浮点数相加时如何调整指数和有效数字,以及处理进位情况。文章还提到,其他浮点运算如乘法、减法、除法都可转换为加法来执行。
摘要由CSDN通过智能技术生成

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

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

往期回顾

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

从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中只有加法

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

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

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

在这里插入图片描述

c++ 模拟浮点数运算
风中追风
05-06 3650
问题来源与多核程序作业,
【C&C++】浮点型数据的运算
Yu
05-04 4013
目标 输入某人的身高(cm),计算 Ta 要保持标准身材体重的上限和下限(单位:kg),分别存入变量 up 和 low 。 相关知识 为了计算的精确,有时候光保存计算结果的整数部分是不够的,这时候就需要使用浮点数了。 C 和 C++ 有 3 种浮点类型:float 、double 和 long double,均为有符号浮点数浮点数类型 浮点数运算 浮点类型数据可以参与算术运算、关系运算、逻辑运算等。计算机有两套算术运算的单元:整型的和浮点类型的。如果两个操作数都是整型数据,则系统采用整型运算运算
浮点数运算
u011244446的专栏
05-26 1256
有些C语言书上说float型的有效位数是6~7位,为什么不是6位或者7位?而是一个变化的6~7位? 浮点数内存是如何存放的? float浮点数要比同为4字节的int定点数表示的范围大的多,那么是否可以使用浮点数替代定点数? 为什么float型浮点数9.87654321 > 9.87654322不成立?为何10.2 - 9的结果不是1.2,而是1.1999998?为何98765
C/C++浮点数运算
weixin_30657541的博客
05-23 726
代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cfloat> 4 5 using namespace std; 6 7 int main(){ 8 float c = (1e15-1e-15-1e15)+1e-15;//运算结果为1e-15 ...
C++浮点数
m0_74712204的博客
10-17 701
C++作为一种强大且广泛使用的编程语言,提供了丰富的功能和库来处理浮点数,这在科学计算、图形处理、金融应用等领域至关重要。本文将深入探讨C++浮点数的特性、精度、操作以及最佳实践,帮助开发者充分利用浮点数在应用程序的潜力。在处理大数或非常接近零的数值时,浮点数运算可能会失去精度,导致数值不稳定。浮点数具有有限的精度,这是由于浮点数的内部表示。- 注意精度损失: 确保了解浮点数精度可能对程序的影响,并采取适当的措施来处理精度损失。- 考虑数值稳定性: 当处理接近零或非常大的数值时,注意数值稳定性问题。
浮点数内存的表示方法.pdf
07-14
浮点数内存的表示方法遵循一套标准,通常在C/C++编程,这一标准是IEEE 754。IEEE 754规定了浮点数如何被编码为二进制形式,以便计算机能有效地存储和计算它们。浮点数的存储格式包括三个主要部分:符号位、...
C/C++的浮点数内存的存储方式分析及实例
09-01
在C/C++编程语言浮点数内存的存储方式遵循国际电气电子工程师协会(IEEE)制定的浮点数标准,即IEEE 754标准。这个标准规定了浮点数如何用二进制科学记数法表示,以便在计算机内部进行计算。下面将详细解释...
深度剖析浮点数内存的存储
m0_56064145的博客
01-11 1195
前言:我们在码代码的时候,经常遇到过以整数形式存入,浮点数形式输出;或者浮点数形式存入整数形式输出。输出的结果往往让人意想不到,那么,为什么会发生这样的变化,又是什么导致发生变化,接下来,就让我们从存储内部结构出发,带你深度解刨! 我们以一个例子来说明一切 #include<stdio.h> int main() { int n = 9; float *pFloat = (float *)&n; printf("n的值为:%d\n",n); pri
c语言整型和浮点数内存的存储(浮点数
ryy1999的博客
10-29 511
首先看看数据在内存是如何存储的大端(存储)模式,是指 数据的低位 保存在内存的 高地址,而数据的高位,保存在内存的低地址;小端(存储)模式,是指 数据的低位 保存在内存的 低地址 ,而数据的高位,,保存在内存的高地址
详谈单精度浮点数内存的存储及其误差问题
zxxxz_的博客
11-14 3405
一、单精度浮点数的取值范围: 二、单精度浮点数内存的存储形式
浮点数运算方法
01-28
江苏计算机三级偏软关于浮点数运算方法
用c++实现浮点数的加减乘除(顺序栈)数据结构 项目 大作业
qiguaiqaq的博客
02-21 629
用c++的顺序栈实现浮点数的加减乘除
C++ 浮点数 (实型)
一季南凉的博客
07-23 898
浮点数 单精度 float float f1=3.14;编译器默认情况下会将这个3.14认为是double型,然后再进行一次转换 float f1=3.14f 要是直接在末尾加上一个f就会直接认为是单精度 双精度 double 默认情况下输出一个小数会显示6位有效数字 科学计数法: 3e2 3X10^2 3e-2 3X0.1^2 ...
【C++学习】一些笔记(01)格式化输入和输出 浮点数运算
Estelle1412的博客
02-01 2487
学习的一些笔记,有必要的才记,没必要的就不记了。 最主要的就是位运算
c++从零开始---数据类型之浮点数
BUSHUAID的博客
11-04 6328
1、浮点数的概念 浮点数可以表示诸如 2.5、3.1415和100033.23 这样的数字,即带小数部分的数字。计算机将这样的值分成两部分储存。一部分表示值,另一部分用于对值进行放大和缩小。比如 3.1415 和 3141.5 除了小数点的位置不同外,其它都是相同的。可以将第一个数表示为0.31415(基准值)和 10 (缩放因子),而将第二个数表示为0.31415 (基准值相同)和 10000 (缩放因子更大)。缩放因子的作用是移动小数点的位置,术语浮点因此得名。 浮点数可以表示非常大和非常小的数值。
C++的浮点数类型
little_startoo的博客
04-25 6205
C++的浮点数类型
float类型数据详解
hanhailong0525的博客
03-18 1494
float类型数据详解
【C++初级】2、浮点数计算
Sunny不要停的博客
06-25 3149
上一节课我们了解了什么是C++语言,了解了写一个C++程序的基本步骤,知道了如何定义变量,本节课是在上一节课的基础上继续深化基础知识的学习,将详细介绍数据类型,如何格式化输出并且包括计算机的一些基础知识。在文章的最后会有几道习题,用于巩固本节课学习的内容。上一节课我们讲到对于一个变量,我们要确定他的类型,这就像分类,举个例子:水果和蔬菜是两种类别,把苹果,香蕉归入水果类,把土豆,洋葱归入蔬菜类,变量的类型就相当于这里的类别,变量名就相当于具体是哪一种水果(具体是哪一种蔬菜)。所以数据类型对于变量来说十分重要
c++操作浮点数
最新发布
学而不思则罔
02-22 358
【代码】c++操作浮点数
C语言实现浮点数运算的替代方法
"本文主要探讨了在C语言如何实现浮点数运算,以及当处理器不支持浮点运算时,如何使用整数操作来模拟浮点运算,即固定点数学的实现方法。" 浮点数计算机科学是用于表示带有小数的数值的数据类型,它在许多...
写文章

热门文章

  • 《起风了》C++源代码 41253
  • 冒泡排序(超详细图解加代码解析,5分钟看懂) 28301
  • 【期末课程设计】学生成绩管理系统 10931
  • 第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结 8672
  • 如何在windows电脑上搭建Linux环境(手把手教安装虚拟机软件和使用云服务器) 7068

分类专栏

  • Linux 17篇
  • C++ 30篇
  • 算法 24篇
  • LeetCode每日一题 2篇
  • 神魔炼体-刷题 23篇
  • 不断学习、进步的人生
  • 数据结构与算法 12篇
  • Python 8篇
  • C语言笔试题 12篇
  • 链表专题 7篇
  • 基础算法 3篇
  • C语言学习专题 24篇
  • 水火莲花-C疑难专题 9篇
  • 青花雾气-计算机基础 5篇

最新评论

  • 《起风了》C++源代码

    2301_76272085: 怎么改啊

  • 数组模拟实现链表

    qq_42954555: 数组实现链表是个很好的想法,它可以利用cpu的局部缓存特性,加速查找,但是还有几个问题要解决,1. 这种链表使用数组实现的,一开始申请固定大小的空间,后面有需求的话,如何扩容,缩容 2.删除数据后,数据对应那块内存,如果管理,以备下次使用 3. 如何存放变长数据类型?

  • 算法总结篇——BFS

    Ivy@HPC: BFS算法确实是个好东西,用于找最短路径和计算两点间距离特别在行。从起始节点开始,一层层扩展,先近后远地访问节点,用队列管理已访问的节点,确保了遍历的效率和路径的最短化。很实用的技术总结!

  • 使用模板方法设计模式封装 socket 套接字并实现Tcp服务器和客户端 简单工厂模式设计

    樊梓慕: 使用模板方法设计模式封装 socket 套接字并实现Tcp服务器和客户端 简单工厂模式设计

  • matlab画图初级;matlab保存文件失败

    2401_85537656: 感谢表情包,我还以为是我的电脑配置不好

最新文章

  • 使用模板方法设计模式封装 socket 套接字并实现Tcp服务器和客户端 简单工厂模式设计
  • C++ 网络套接字编程 tcp udp
  • C++网络编程基础
2024
06月 3篇
05月 6篇
04月 11篇
03月 9篇
02月 7篇
01月 13篇
2023年105篇

目录

目录

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家青岛商场美陈价格登封玻璃钢雕塑加工厂家上海特色商场美陈哪里买安庆欧式玻璃钢雕塑销售厂家芦山玻璃钢花盆花器南昌玻璃钢雕塑制品厂洛阳玻璃钢雕塑厂家直销湖南环保玻璃钢雕塑设计商场美陈古风重庆佛像玻璃钢雕塑生产厂家安宁玻璃钢雕塑设计公司多少钱江西特色玻璃钢雕塑设计上海正宗玻璃钢雕塑报价黔南州商场美陈道具常州玻璃钢仿真雕塑四川玻璃钢仿铜雕塑定制洛阳公园标识玻璃钢卡通雕塑公司玻璃钢商业美陈雕塑多少钱重庆定做玻璃钢卡通雕塑玻璃钢雕塑设计效果图泰州商场美陈布展浙江玻璃钢雕塑摆件采购深圳商场玻璃钢雕塑施工哪家好临汾玻璃钢人物雕塑定制深圳超市商场美陈生产吉安户外玻璃钢雕塑多少钱成都泡沫玻璃钢雕塑郑州景区玻璃钢雕塑商场美陈布置讲解图湛江玻璃钢雕塑卡通香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化