今天研究下float与double的编码

float:

我们来看一下这组数是如何一步步从16进制转换到float的

float编码格式:

1、将16进制转换到2进制

整理后:0 1000 0010 100 0100 0000 0000 0000 0000

=符号位

=指数位

=尾数部分

首先将指数为换算到十进制=130

大家都知道,float的范围为-2^128 ~ +2^128

所以此处获得指数 x=130-127=3

float值 y=1.10001*2^x (1.XX  XX处填写尾数部分有效位)=1.10001*2^3=1100.01(此处是二进制表示)

1100.01 换算到十进制为 y=12+(1/2)^2=12+0.25=12.25

dobule

其实double和float是一样的道理,那我们往下看下

float编码格式:

1、将16进制转换到2进制

整理后:0 100 0000 0010 1000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000

=符号位

=指数位

=尾数部分

首先将指数为换算到十进制=1026

大家都知道,double的范围为-2^1024 ~ +2^1024

所以此处获得指数 x=1026-1023=3

float值 y=1.10001*2^x (1.XX  XX处填写尾数部分有效位)=1.10001*2^3=1100.01(此处是二进制表示)

1100.01 换算到十进制为 y=12+(1/2)^2=12+0.25=12.25

float与double剖析的更多相关文章

  1. 【转】JAVA程序中Float和Double精度丢失问题

    原文网址:http://blog.sina.com.cn/s/blog_827d041701017ctm.html 问题提出:12.0f-11.9f=0.10000038,"减不尽" ...

  2. Sql的decimal、float、double类型的区别

    三者的区别介绍 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E ...

  3. float和double的精度

    作者: jillzhang 联系方式:jillzhang@126.com 原网址:http://blog.csdn.net/wuna66320/article/details/1691734 1 范围 ...

  4. float和double精度问题

    System.out.println(new BigDecimal(253.90).doubleValue() * 100);25390.0精度正确 System.out.println(new Bi ...

  5. float和double在内存中的存储方式

    本文转载于:http://wenku.baidu.com/link?url=ARfMiXVHCwCZJcqfA1gfeVkMOj9RkLlR9fIexbgs9gDdV8rIS48A1_xe1y6YgX ...

  6. float、double的有效位数

    Java中的浮点类型有两类,分别是float和double类型,其中float取_7__位有效数据,double取_15__位有效数据

  7. decimal,float和double的区别

    http://www.cnblogs.com/yellowapplemylove/archive/2011/08/23/2150316.html 一直很奇怪C#的预定义数据类型中为什么加了一个deci ...

  8. 汇编学习:float与double速度问题

    X86处理器包含两种类型的浮点数寄存器.第一种使用8个浮点寄存器组成浮点寄存器栈,另一种为向量寄存器(XMM,YMM),它们对于单双精度的处理是不同的.本文将讨论两种模式下的浮点数计算速度问题. 一. ...

  9. Effective Java 48 Avoid float and double if exact answers are required

    Reason The float and double types are particularly ill-suited for monetary calculations because it i ...

随机推荐

  1. Nginx配置免费SSL证书StartSSL,解决Firefox不信任问题

    先在StartSSL上申请免费一年的SSL证书,具体过程网上很多教程.然后把申请到的key和crt文件上传到服务器,比如/usr/local/nginx/certs/. Nginx配置SSL证书 直接 ...

  2. Java获取本机MAC地址

    为什么写这个呢?因为前几天看见网上有采用windows命令获取局域网和广域网MAC,查了查可以直接用JDK的方法. MAC可用于局域网验证,提高安全性. import java.net.InetAdd ...

  3. 【技术贴】解决xp下Microsoft.SqlServer.Management.PSProvider.dll

    解决 安装SQLserver2008时有出错信息,提示:Configuration error description: 无法获得 C:\Program Files\Microsoft SQL Ser ...

  4. 无插件Vim编程技巧

    无插件Vim编程技巧 http://bbs.byr.cn/#!article/buptAUTA/59钻风 2014-03-24 09:43:46 发表于:vim  相信大家看过<简明Vim教程& ...

  5. codeforces C. Little Pony and Expected Maximum

    题意:一个筛子有m个面,然后扔n次,求最大值的期望; 思路:最大值为1 有1种,2有2n-1种,  3有3n -2n 种   所以为m的时有mn -(m-1)n 种,所以分别求每一种的概率,然后乘以这 ...

  6. 使用Aspose.Word的基础知识整理

    var doc = new Document(path);     doc.AcceptAllRevisions();//接受所有修订

  7. Unity 物体围绕圆周运动

    用Unity开发游戏中,经常会有搜寻的功能,这时候我们需要一个放大镜的图标在那圆周运动.写了相关脚本直接挂载在要圆周运动的物体上即可: using UnityEngine; using System. ...

  8. Delphi socket() 函数的应用

    socket()系统调用,带有三个参数: 1.参数domain指明通信域,如PF_UNIX(unix域),PF_INET(IPv4), PF_INET6(IPv6)等 2.type指明通信类型,最常用 ...

  9. 真机测试---iOS证书(.p12)和描述文件(.mobileprovision)

    iOS证书和描述文件: 证书类型 使用场景 开发(Development)证书和描述文件 用于开发测试,在starain中打包后可在真机环境通过Safari调试 发布(Distribution)证书和 ...

  10. list去除重复

    1. [代码][Python]代码 简单去重      ? 1 2 3 4 5 l = [1,2,3,3] l = list(set(l))   >>>l >>>[ ...