今天研究下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. JSON取代XML?--JSON入门指南

    定义 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C# ...

  2. bzoj 1034: [ZJOI2008]泡泡堂BNB 貪心

    1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1398  Solved: 727[Submit][Sta ...

  3. Git的分支与合并

    在Git里面我们可以创建不同的分支,来进行调试.发布.维护等不同工作,而互不干扰.下面我们还是来创建一个试验仓库,看一下Git分支运作的台前幕后: $rm -rf test_branch_proj $ ...

  4. apk,task,android:process与android:sharedUserId的区别

    apk一般占一个dalvik,一个进程,一个task.通过设置也可以多个进程,占多个task. task是一个activity的栈,其中"可能"含有来自多个App的activity ...

  5. java学习面向对象之多态

    如何理解多态,让我们举个例子来描述一下,因为单纯的说多态大家可能不理解: abstract class Animal { ; abstract void eat(); public void run( ...

  6. showMonth

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. (转载)linux中shell变量

    (转载)http://blog.csdn.net/zahuopuboss/article/details/8633891 为使shell编程更有效,系统提供了一些shell变量.shell变量可以保存 ...

  8. ie8此加载项无法恢复&网站还原错误问题解决=lr成功打开ie成功录制脚

    问题:ie8打开公司数字神经时出现此加载项无法恢复,网站还原错误. 解决方法: 1.管理ie加载项,全部禁用以后问题仍然存在,确定不是加载项问题. 2.重设ie8,工具-internet选项-高级-重 ...

  9. poj 2975 Nim(博弈)

    Nim Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5232   Accepted: 2444 Description N ...

  10. Bzoj 2748: [HAOI2012]音量调节 动态规划

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 1234  Solved: 777[Submit][Status ...