float的实际存储和计算方法

原创 2016年08月30日 14:47:27
0 zzzzzzzz wwwwwwwwwwwwwwwwwwwwwww
符号位 指数位 小数位


指数位8位 zzzzzzzz 转换为byte 取值范围 0~255 [-128~127]
这里是无符号,但是要127 为0。
即实际表示011111111 是0 就是2^0
10000001 表示2 就是2^2


小数位23位 wwwwwwwwwwwwwwwwwwwwwww 代表小数
100 1000 0000 0000 0000 0000 
1/(2^-1)+ 1/(2^-2)+ ...+1/(2^-23)


计算方式:
6.9=110.1110011001100 ...
左移小数点到前面只有一位,计算得到移动了2位,就是指数位
1.101110011001100 ...
取小数点右边23位
101110011001100 ...


指数位2 10000001
小数位≈0.7246 101110011001100 ...


逆运算
结果=2^指数位 + 2^指数位 * 小数位
例:
0 10000001 10111001100110011001100
+ 4 0.5+0.125+0.0625+0.03125+0.00390625+0.001953125 ...
result = 4 + 4 * 0.724609375
result = 6.8984375 ≈ 6.9

所以浮点数特性就是指数位越小,越精准。

参考:点击打开链接

float类型的精度问题与计算机中的存储

转自http://www.cnblogs.com/yewsky/articles/1864934.html和http://blog.csdn.net/soft200816/article/detail...
  • xu282934741
  • xu282934741
  • 2015年12月05日 10:32
  • 1398

float 在内存中的储存方式

float 在内存中的储存方式 C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit, double数据占用 ...
  • xieyihua1994
  • xieyihua1994
  • 2016年06月13日 17:31
  • 2066

Java—float数据在内存中的存储方法

浮点型变量在计算机内存中占用4字节(Byte),即32-bit。遵循IEEE-754格式标准。 一个浮点数由2部分组成:底数m 和 指数e。                          ±man...
  • weiguishan
  • weiguishan
  • 2015年02月20日 16:06
  • 2138

float型数据在内存中的存储方式

float型数据的取值范围在-3.4*10^38到+3.4*10^38次之间,其取值范围跟其在内存当中的存储方式(以科学计数法存储)有关: float型数据在内存当中占4个字节,分布如下: 1bit(...
  • qq_33312747
  • qq_33312747
  • 2015年12月15日 10:15
  • 2398

float型数据在内存中的存储形式

一个float型实数在内存中占4个字节,即32个二进制bit,从低位到高位依次叫第0位到第31位。这32位可以分为3个部分:符号位(第31位),阶码(第30位到第23位共8位),尾数(最低23位)。 ...
  • yipanbo
  • yipanbo
  • 2015年07月10日 16:31
  • 1867

Java中float和double类型的数据在内存中是怎样存放的

转自   http://bbs.csdn.net/topics/260050279
  • xiao88xin
  • xiao88xin
  • 2014年08月29日 11:38
  • 1160

几种还款的方式中本金和利息的计算

个人贷款利率可根据贷款产品的特性,在一定区间内浮动。一般来说,贷款期限在1年以内(含1年)的实行合同利率,遇法定利率调整时,执行原合同利率;贷款期限在1年以上的,合同期内遇法定利率调整时,借贷双方可按...
  • u012845809
  • u012845809
  • 2015年08月11日 19:06
  • 809

C/C++语言int和float内存存储分析与解释

本篇博客中所提到的都是基于intel x86Cpu,开发环境是基于windows 8 + vs2013。本片博客需要读者自己明白十进制、十六进制、二进制之间的转换,博客中不会介绍转换过程,需要了解详细...
  • kloxo
  • kloxo
  • 2015年03月24日 23:44
  • 1886

C语言中float, double类型在内存中的存储方式

本文转载于:http://wenku.baidu.com/link?url=ARfMiXVHCwCZJcqfA1gfeVkMOj9RkLlR9fIexbgs9gDdV8rIS48A1_xe1y6YgX...
  • slience_J
  • slience_J
  • 2016年07月20日 09:09
  • 1267

float和double在内存中的存储

从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的,所以double能存储更高的精度。   任何数据在内存中都是以二进制(0或1...
  • u013566722
  • u013566722
  • 2016年12月13日 09:49
  • 573
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:float的实际存储和计算方法
举报原因:
原因补充:

(最多只允许输入30个字)