C语言 float、double数据在内存中的存储方式
float在内存中占4个字节(32bit),32bit=符号位(1bit)+指数位(8bit)+底数位(23bit)
指数部分
指数位占8bit,可以表示数值的范围是0-(表示0~255一共256个数),因为指数可正可负,所以IEEE规定,此处算出的次方必须减去127才是真正的指数,
所以float的指数范围是 -(-) 到+(-)。
底数部分
任何一个数的科学记数法都可以表示为1.xxx*^n,小数部分就可以表示为xxx,整数部分永远是1,不影响精度,所以可以不用储存。23bit二进制可以表示的
最大值是2^=,一共7位,这意味着最多能有7位有效数字(不能表示比8388608大的数值),但绝对能保证的为6位,即float的精度为6~7位有效数字。
以8.25为例:
8.25=1000.01
.01的科学记数法是1.*^
符号位,正数为0,负数为1
指数=,即x-=,因此x=,所以指数位应该是130,对应的二进制数是10,,
底数=,不足补0,所以23bit对应的二进制数是00,,,,,,,
所以最终在内存中二进制数是 ,, ,,,,,,,
4个字节的值是

说明:本人主机的字节序是大端字节序,所以顺序相反
double存储方式和float相同,区别在于64bit=符号位(1bit)+指数位(11bit)+底数位(52bit)
指数部分算出的次方必须减去1023才是真正的指数,
double的小数部分可以表示的最大值是2^=,,,,,,这意味着最多能有16位有效数字,但绝对能保证的为15位,即double的精度为15~16位有效数字。
C语言 float、double数据在内存中的存储方式的更多相关文章
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...
- C/C++数据在内存中的存储方式
目录 1 内存地址 2 内存空间 在学习C/C++编程语言时,免不了和内存打交道,在计算机中,我们存储有电影,文档,音乐等数据,这些数据在内存中是以什么形式存储的呢?下面做一下简单介绍. 本文是学 ...
- C语言float型数据在内存中的储存方式
- C语言之数据在内存中的存储
C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...
- C语言中float,double类型,在内存中的结构(存储方式)
C语言中float,double类型,在内存中的结构(存储方式)从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以doubl ...
- C语言中浮点数在内存中的存储方式
关于多字节数据类型在内存中的存储问题 //////////////////////////////////////////////////////////////// int ,short 各自是4. ...
- Float在内存中的存储方式及IEC61131处理
Float在内存中的存储方式及IEC61131处理 1,fp32(32bits float)类型数据在存储器中占用4Bytes存储,且遵循IEEE-754标准: 一个浮点数分三部分组成: 符号位s(1 ...
- <转载>浅谈C/C++的浮点数在内存中的存储方式
C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中 ...
- QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用
FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...
随机推荐
- go 学习笔记(2) --变量、常量、iota、数组
参考网址:https://gobyexample.com 变量 Go中使用全新的关键字var来声明变量.var我们并不陌生,在Javascript 和C#中均有出现.不同的是Go和C#中变量属于强类型 ...
- 转 web前端性能分析--原理篇
转自http://blog.csdn.net/five3/article/details/7686715 web前端性能: 即是web用户在访问一个页面时所要花费的时间总和.即一个完全意义上的用户响应 ...
- Adobe推出HTML5动画设计工具Edge
HTML5和Flash,是敌对?是共存? 虽然Flash如今依旧牢牢占领着网络动画的大半江山,但这样的状况终将会被改变. 那么,Edge的推出是否意味着Adobe将放弃和屈服于Flash与HTML5之 ...
- bootstrap 多元素共用 popover
<div class="popover fade bottom in small" role="tooltip" id="gPopover&qu ...
- 找到当前mysql group replication 环境的primary结点
一.起原: mysql group replication 有两种模式.第一种是single primary 也就是说单个primary .这个模式下只有这一个主可以写入: 第二种是multi pri ...
- k8s-configmap
一.目的 把应用的代码和配置分开,通过配置configmap管理pod,一种统一的集群配置管理方案.ConfigMap API资源提供了将配置数据注入容器的方式,同时保持容器是不知道Kubernete ...
- Meta Blogging
Meta Blogging 由来 偶然想到说如果哪一天cnblogs挂了,那之前记录的随笔怎么办?可不可以把它们给download下来本地保存一份.正好看到有个库叫requests, 干嘛不试试看呢. ...
- TCP数据流
1. 引言 如果按照分组数量计算,约有一半的TCP报文段包含成块数据(如FTP.电子邮件等),另一半则包含交互数据(如telnet和rlogin).如果按照字节计算,则成块数据与交互数据的比例约为90 ...
- hdu 5289 Assignment(给一个数组,求有多少个区间,满足区间内的最大值和最小值之差小于k)
1.区间是一段的,不是断开的哟 2.代码是看着标程写的 3.枚举左端点,二分右端点流程: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L ...
- JNI-获取Java对象的成员变量-GeInttField()
例: 在Java中定义一个属性,然后用C语言将其设置成另外的值,并输出出来. Java代码: Person.java package com.yuneec.demo; public class Per ...