C/C++浮点数在内存中的存储方式

c++中浮点数的存储方式 浮点数的存储方式 阅读详情
   C/C++浮点数在内存中的存储方式

       任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为  10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法。

       在二进制科学表示法中,S=M*2^N 主要由三部分构成:符号位+阶码(N)+尾数(M)。对于float型数据,其二进制有32位,其中符号位1位,阶码8位,尾数23位;对于double型数据,其二进制为64位,符号位1位,阶码11位,尾数52位。

单精度、双精度IEEE754浮点数格式:

             31     30-23     22-0

float     符号位    阶码      尾数

            63      62-52    51-0

double  符号位    阶码      尾数

符号位:0表示正,1表示负

阶码:这里阶码采用移码表示,对于float型数据

 

参数      

参数单精度float双精度浮点数
浮点数长度3264
尾数长度P2352
符号位S11
指数长度E即阶码811
最大指数1271023
最小指数-126-1022
指数偏移量1271023
可表示的范围10^-38~10^3810^-308~10^308

 

例子:将十进制数178.125转换成单精度浮点数:

1.首先将178.25转换成二进制形式(10110010.001)

2.再将二进制转换为规格化的形式:1.0110010001*2^7,从该式可以看出,符号位S为0,尾数01100100010000000000000

阶码为E=7+127=134 转换为二进制:10000110

 

所有单精度的表示形式为:

01000011001100100010000000000000

 

 

根据单精度浮点数转换成十进制:

00111111010110000000000000000000

指数=E-127=01111110-127=-1,尾数=1.1011

1.1011*2^-1=0.11011(二进制)=0.84375(十进制)

 

机器字长为n,带符号定点数的表示范围

码制定点整数定点小数
原码-(2^(n-1)-1)~2^(n-1)-1-(1-2^-(n-1))~1-2^-(n-1)
反码-(2^(n-1)-1)~2^(n-1)-1-(1-2^-(n-1))~1-2^-(n-1)
补码-2^(n-1)~2^(n-1)-1-1~+(1-2^-(n-1))
移码-2^(n-1)~2^(n-1)-1-1~+(1-2^-(n-1))
S4HANA Rebate Management(条件合同) -Single Step S4HANA 条件合同管理(Condition Contract Management), 包括如何创建条件合同,场景应用 阅读详情

相关推荐

Open Interpreter利用Code Interpreter实现本地化

作为一个可以在本地环境中运行的工具,Open Interpreter可以访问互联网,没有文件大小和运行时间的限制,并且可以利用任何包或库。去年7月,OpenAI发布了一个强大的插件,名为Code Interpreter(代码解释器),它可以根据用户的自然语言需求生成并执行代码解决方案,帮助完成各种任务,如数据分析、图表创建和文件编辑等。Open Interpreter不仅是一个编码解释器,它还是一个强大的工具,专注于处理复杂任务,将GPT-4代码解释器的强大功能与本地开发环境的灵活性完美结合在一起。

DigitalChina_DCG的博客 1790

双精度浮点数转换器在线_关于浮点数的几个有意思的例子

本文都是下面文章开头6个问题的解答:张雅宸:浮点数的二进制表示以及几个例子​zhuanlan.zhihu.com问题1int 当两个数字都是float类型时,相乘的结果却是58。揭开谜底的过程涉及了浮点数的存储方式、浮点数的乘法规则和舍入。关于浮点数的存储方式可以参看浮点数的二进制表示以及几个例子,这里不再赘述。0.58 * 1000.58的双精度表示是:0 01111111110 0010100...

weixin_40002692的博客 6219

海康VM加密狗无法识别常见问题排查

海康VM加密狗无法识别常见问题排查

视觉人机器视觉的博客 2702

十进制小数转为二进制小数方法

首先需要明确一点就是并不是所有的十进制小数都能用二进制数精确表示的。这是由于进制的局限性导致的。例如三进制的0.1,用十进制表示是无限循环小数0.333333..... 十进制的小数转换为二进制的方法为 十进制小数乘2,取出整数作为二进制小数第一位,余下的小数再乘以2,取出整数作为小数第二位,如此反复,直至余下的小数为0。 例: 十进制 0.375 0.375 * 2 = 0.75 ———— 0 (0.75的整数部分为0) 0.75 * 2 = 1.5 ———— 1(1.5的整数...

qq_35396239的博客 3万+

最新版IAR9.40和注册工具

IAR最新版的IDE在编译速度和代码提示等各个方面上都有很大提升,软件这个东西果然还是越新越好。之前的时候,IAR v9系列网上很多人都说能用,但是又没有把 IAR v9系列的注册方法写的很清楚,导致我一直都用注册老版本v8的方法去注册v9。结果注册后都会提示。

xue_nuo的博客 4万+

CRMEB小程序订阅消息实战指南:PHP配置与疑难排查

本文提供CRMEB小程序订阅消息的完整实战指南,重点解析PHP环境下的配置流程与常见错误解决方法。文章从订阅消息的核心规则讲起,详细拆解了从微信后台获取模板到CRMEB后台完成字段映射的关键步骤,并提供了从用户授权、缓存清除到服务器日志检查的逐层排查方案,帮助开发者高效打通消息通道,避免常见配置陷阱。

weixin_29022115的博客 317

关于浮点数的小数部分的二进制表示、精度以及浮点数如何在内存中存放问题

浮点数小数部分二进制转换,:原始数据的小数部分,乘2,取整数部分,去整数部分,然后再乘2,再取整数部分,去整数部分,再乘2......如此循环,直到小数部分值为0(包括此时的取整值)或者小数部分跟原始小数部分相等为止(包括此小数部分的取整值)。然后将取到的整数值顺序排下来就是此小数部分的二进制表示。例:5.750.75 * 2 = 1.5  》10.5   * 2 = 1.0  》1此时的1.0的...

lulu_1085的博客 3941

Python+Tableau 全流程数据分析实战:从数据清洗到商业洞察可视化

本文通过Python+Tableau完整演示电商销售数据分析流程。首先使用Python进行数据清洗(缺失值处理、异常值过滤等)和探索性分析(商品类别、时间趋势等),然后导入Tableau创建交互式可视化仪表盘。分析发现电子产品销售额最高但利润率低,美妆类利润率最优,东部地区销售表现最好。最终提出优化供应链、加强美妆推广等商业建议,展示了Python数据处理与Tableau可视化的高效配合。所有代码可直接运行,适合数据分析初学者和从业者实战参考。

weixin_44520581的博客 337

浮点数在内存中的存储方式

浮点数类型包括float、double、long double 在这里以float为例。 先看一段代码: #include #include int main() { int a = 9; float *pa = (float *)&a; printf("a = %d\n", a); printf("*pa = %f\n", *pa); *pa = 9.0; printf("a

夏夕阳的博客 1万+

手把手教你用Three.js+Vue打造3D机房可视化系统(附完整代码)

本文详细介绍了如何使用Three.js与Vue 3构建企业级3D机房可视化系统。从技术选型、项目架构设计到3D场景构建、设备建模与渲染策略,提供了完整的开发方案和实战代码。重点讲解了如何实现设备状态实时监控、交互操作与性能优化,帮助开发者快速掌握3D可视化开发的核心技术。

ttt77的博客 315

大模型在心律失常预测及治疗方案制定中的应用研究报告

目录一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究创新点二、大模型技术概述2.1 大模型基本原理2.2 常见大模型类型及特点2.3 大模型在医疗领域的应用现状三、心律失常的术前预测与准备3.1 术前心律失常预测的重要性3.2 大模型在术前预测中的应用案例3.3 基于预测结果的术前准备方案四、术中监测与实时调整4.1 术中监测心律失常的方法与技术4.2 大模型辅助术中决策的机制4.3 实时调整手术方案的策略与实践五、术后恢复与并发症风险预测5.1 术后心律失常的监测与评估5.2 大模型预测术

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1596

浅谈C/C++的浮点数在内存中的存储方式

                                                            C/C++浮点数在内存中的存储方式        任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为  10000100(低地址单元) 00000100...

weixin_34138377的博客 254

Java语音革命:用代码打造永不疲倦的AI客服,让客户支持效率飙升300%!

客户支持领域常面临“薛定谔困境”,即无法预知客户来电的意图是投诉还是表扬。通过Java技术,尤其是语音识别和自然语言处理(NLP),可以有效解决这一问题。文章展示了如何利用Java代码构建“声纹量子引擎”,实现客户支持的自动化。核心技术包括录音与预处理、语音识别和语义理解。通过百度AI API和Stanford NLP,系统能够快速、准确地识别客户语音并理解其意图。数据表明,优化后的AI处理时间从15分钟缩短至18秒,语音识别准确率提升至98.5%,并发处理能力达到单实例1000+请求。这些技术显著提升了客

墨夶的博客 1034

C/C++浮点数在内存中的存储方式(转)

本文转自:https://www.cnblogs.com/dolphin0520/archive/2011/10/02/2198280.html                                                             C/C++浮点数在内存中的存储方式        任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二...

Primeprime的专栏 427

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C/C++浮点数在内存中的存储方式《转》

那天有人在汇编群里有人问了一个 #include <iostream>#include <stdio.h>using namespace std; int main(){ int a; a = 3; printf("%lf\n",a); return 0;} 为什么输出0的问题。而且最近计算机组成原理里面有过对浮点型储存的讲解,所以这里就查了...

weixin_30835649的博客 111

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【C语言中的细节问题】C/C++浮点数在内存中的存储方式

C/C++浮点数在内存中的存储方式 本文转载自:https://www.cnblogs.com/dolphin0520/archive/2011/10/02/2198280.html        任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为  10000100(...

zl3090的博客 311

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

浅谈C/C++浮点数在内存中的存储方式

C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法。 在二进制科学表示法中,S=M*2^N 主要由三部分构成:符号位+阶码(N

weixin_46048542的博客 353
上一篇: C++模板简叙
下一篇: Effective C++ 总结
xiaoding133
博客等级 码龄19年 415粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值