C语言浮点数据在内存中的存储方式
float在内存中的存储遵循IEEE 754标准。在C/C++中,float类型占4个字节即32位 , 这32位分成了3部分:
符号位最为简单,如果你存储的是正数那么符号数就是0。如果是负数,则为1。
下面,我以13.625为例说明阶码与尾数的表示方法。首先,我们取出13.625的整数部为13。对其使用短除法(对该数除以2,直至不能再除的一种方法)结果如下
将各余数自下而上排列,则得到了13的二进制表示。之后,取出13.625的小数部分为0.625对其每次乘2取出整数留下小数,直至得到1。结果如下
自上而下将取出的整数排列好,即得0.101。
这样我们就得到了13.625的二进制表示。为1101.101。之后我们需将小数点移动至整数部只有一位。移动后得到1.101101。在此我们将小数点移动了三位。因而三即是该数的指数。而阶码则为指数+127(加127是C语言的内在逻辑,在此我们并不深究。)因而我们得到了13.625的阶码,为130。二进制表示10000010。
至于最后的尾数,将原先得到的1.101101去掉整数部分后在后面补齐17个0即可。(float类型的尾数有23位,若不够,在后补齐0即可。)
最后我们得到了13.625的存储数据
转换成16进制后为 41 5A 00 00
程序验证:
float a = 13.625;printf("%08X\r\n",*(unsigned int*)&a);
参考:
https://blog.csdn.net/yansmile1/article/details/70145416/
https://blog.csdn.net/itworld123/article/details/78914969
https://zhuanlan.zhihu.com/p/82761324
https://blog.csdn.net/qwertyuoi123456/article/details/53379068
C语言浮点数据在内存中的存储方式相关推荐
- c语言字母是怎么存储,C语言之数据在内存中的存储
C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...
- 【C语言】浮点型数据在内存中的存储方式
目录 一. 前言 二. 问题的引出 三. 两类浮点型数据(float.double)在内存中的存储方式 3.1 两类浮点型数据的存储模型 3.1.1 浮点型数据数值读取的通用模型 3.1.2 floa ...
- c语言double数据存储形式,C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数 ...
- JavaScript中数据在内存中的存储方式
JavaScript中数据在内存中的存储方式 1.js数据类型分类 简单数据类型:Number.String.Boolean.Undefined.Null 复杂数据类型:Object.Array.Fu ...
- C语言int类型和float浮点型数据在内存中的存储方式
int 类型在内存中占4个字节,而一个字节是8个比特位,所以int类型占32个比特位. float类型在内存中同样也占4个字节,所以其也是占32个比特位. 一个比特位就是一个0或1,所以其在二进制位数 ...
- C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit) 指数部分 指数位占8bit,可以表示数值的范围是0-255(表示0~255一共25 ...
- 数据在内存中的存储方式——数据类型、内存地址
一.数据类型 首先必须得明白,在计算机中,任何文件.图片.视频等都是以二进制格式储存在储存介质中的一串编码,对于二进制数的每一位称作1bit(比特).这里必须得再说一下,byte(字节)和bit(比特 ...
- 数据存储---整形数据在内存中的存储
我们每一次写代码的时候,都会创建变量.那么所创建的整形变量是如何在内存中存储的呢? 目录 1.数据类型介绍. 2.整形数据在内存中的存储形式. 3.大小端字节序的介绍. 1.数据类型介绍 本文重点介绍 ...
- 关于数据在内存中的存储(进阶)
目录 Part One:感悟 Part Two:Knowledge 引言: 1.整形的存储 2.浮点数的存储 Part One:感悟 没啥感悟,好久没写博客了,现在恢复正常更新. Part Two:K ...
最新文章
- 海思3559A上编译libjpeg-turbo源码操作步骤
- matlab缩小矩阵尺寸,Matlab中对矩阵使用矩阵尺寸的索引
- Singleton Pattern(单例模式)
- oppo手机显示服务器繁忙,如何玩转OPPO R11,五大隐藏功能你必须了解
- Android之运行的错误:java.lang.UnsatisfiedLinkError: Couldn‘t find cibloger.so
- 分析酸对酸性染料染羊毛染色性能的影响?举例说明酸性染料染羊毛时,如何选择合适的染浴pH值?并说明原因。
- 计算机用户win7修改不,Win7电脑时间改不了的解决方法
- pythonseleniumide使用_selenium第二课(脚本录制seleniumIDE的使用)
- LeetCode OJ - Best Time to Buy and Sell Stock III
- BasicAuth和OAuth
- spellChecker 拼写检查
- 根据经纬度计算两点间的距离_全班学生被此奥数题难倒,理解两点间距离公式的几何意义是关键...
- 计算机函数sumif怎么用,怎么用sumif函数求和
- bertram_Bertram
- haxm device is not found
- 在线LaTeX公式编辑器(备忘)
- 请选择要安装的mac os 磁盘
- 技巧心得:在国家核心期刊发表文章应注意(三)
- Source Insight——C/C++代码阅读器
- 【AI每日播报】马云启动NASA计划 Intel150亿美元收购Mobileye