`
merrymode
  • 浏览: 53197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[Java]IEEE754浮点数的转换方法

阅读更多
16进制浮点数的表示方法,根据IEEE的标准,分为32位和64位两种,参数分别如下:

             符号位      指数位             尾数位            指数偏移量
32位     1[31]     8[23-30]        23[0-22]           127

64位     1[63]     11[52-62]      52[0-51]          1023

说明:

1位符号位(SIGN)
8位指数位(EXPONENT)
23位尾数位(MANTISSA)

其中,32位二进制数的排位为:[31][30][29]...[2][1][0]

         64位二进制数的排位为:[63][62][61]...[2][1][0]

16进制转换为10进制的公式如下:

SGL = (-1)^SIGN * 1.MANTISSA * 2^(EXPONENT-127)

举例:

将0x40800000转换为10进制数,方法如下:

(1)先将16进制数转成二进制数01000000100000000000000000000000

(2)1位符号位(SIGN)=0

(3)8位指数位(EXPONENT)=10000001=129[10进制]

(4)23位尾数位(MANTISSA)=00000000000000000000000

(5)1.尾数=1.1 .00000000000000000000000=1.0000000[10进制]

(6)套入公式得SGL=(-1)^0*1.0000000*2^(129-127)=4

上面说的是转换原理,在JAVA里面转换其实没有那么麻烦,因为有好多现有的JDK函数可用,所以就大大简化了我们的转换过程。下面我举个例子来说明一下。

举例:

       将46729C00转换为10进制数,方法如下:

         String hex="46729C00";

         Float  value=Float.intBitsToFloat(Integer.valueOf(hex, 16));

       这样就可以了,很简单吧!O(∩_∩)O~

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JavaIEEE754浮点数的转换方法

    [Java]IEEE754浮点数的转换方法,方法都写好了,直接复制过去就可以用了,就这么简单!

    IEEE754浮点数与十进制数互相转换原理分析

    根据IEEE754浮点数与十进制数互相转换原理编写,可以实现数据转换验证。

    IEEE754双向转换程序

    单精度ieee754浮点数和十进制数的双向转换程序。本人就读中北大学,毕业了,算是对母校的一点留恋。 QQ 30682981 Email:zhanmail@foxmail.com

    IEEE-754标准 定义浮点数转换工具

    输入十进制浮点数,可转换成IEEE-754标准的数据,也可以将IEEE-754标准的数据转换成十进制浮点数,非常好用的小工具

    基于IEEE754标准 将一个十六进制转换为十进制浮点数

    基于IEEE754标准 将一个十六进制转换为十进制浮点数的小工具,提供C#源码

    Java实现IEE754 Float类型数据

    Java实现IEE754 Float类型数据

    IEEE_754_16进制转十进制浮点数 工具

    IEEE_754_16进制转十进制浮点数 工具 测试有效

    单精度&双精度浮点数与十六进制数相互转换

    浮点数和十六进制数的相互转换,包括:1.单精度浮点数(32位)和十六进制数的相互转换,2.双精度浮点数(64位)和十六进制数的相互转换。

    单双精度转十六进制.zip

    单双精度浮点数与十六进制双向转换工具,单双精度浮点数与十六进制双向转换工具,单双精度浮点数与十六进制双向转换工具

    IEEE标准的32位浮点数转换为十进制的计算方法

    工作中碰到的一个小问题,经过了一番研究,终于搞明白了,为了以后大家不再挠头,写了这个供大家参考。其中涉及到MODTEST 软件 MODBUS协议 IEEE32位二进制浮点数与十进制小数转换的方法等内容。

    IEEE754二进制浮点数分析

    对于java初级学者 来讲,二进制作为了解内容,尤其浮点数二进制的转换,精力充沛的同学可以研究一下,内容仅供参考

    ryu:将浮点数转换为十进制字符串

    该项目包含使用最短,固定的%f和科学的%e格式将IEEE-754浮点数转换为十进制字符串的例程。 主要的实现是在C中进行的,并且到Java的转换最短。 所有算法均已在同行评审的出版物中发表。 在撰写本文时,这些是已知最...

    Java读取Segy文件并利用vtk显示的例子

    包含了对segy数据的读取,依据2002年标准。里面封装了java类,并对每个字段有足够多的中文注释,大家...里面实现了IBM十进制浮点数到IEEE 754的转换 读取之后,在vtk里进行了显示。 希望各位地球物理的同行,多交流。

    跟我学习javascript的浮点数精度

    大多数编程语言都有几种数值...这是由IEEE754标准制定的64位编码数字——即“doubles”。如果这一事实使你疑惑JavaScript是如何表示整数的,请记住,双精度浮点数能完美地表示高达53位精度的整数。从–9 007 199 254 7

    精度浮点转换器源码 (By Greatboy)

    ; 程序功能:显示IEEE浮点数在内存中的存放以十六进制数或二进制方式显示 ; 程序设计:Greatboy ; 程序建立时间:2004.11

    java版2048源码下载-jvm:实战虚拟机

    float和double为满足IEEE754的32位浮点数和64位浮点数。 引用数据类型分为3重 类/接口 泛型类型 数组类型 数字编码 整数用补码表示,正数的补码是本身,负数的补码就是反码+1。反码就是符号位不变,其他位取反。 ...

    math:Minecraft Java版中的浮点运算

    数学说明/安装这是一个数据包,可以将十进制数转换为IEEE-754浮点数。 很快(希望如此),该数据包将能够在两个浮点数上执行算术运算……但还没有。 要安装,请将“ math”文件夹放入您所在的世界的“ datapacks”...

    Java的8大基本数据类型.pdf

    double数据类型是双精度、64位、符合IEEE 754标准的浮点数;默认值:0.0d,double d = 2.3; 描述整数默认⽤int,描述⼩数默认⽤double。long⼀般⽤于描述⽇期、时间、内存、⽂件⼤⼩,IO处理⼀般使⽤byte 字符型 ...

    酒店推荐系统源码java-python-pluralsight:用Pluralsight学习Python

    IEEE-754 双精度浮点数,具有 53 位二进制精度,大约是 15 到 16 位十进制精度。 任何包含小数点或E文字数字都被解释为浮点数。 可以使用科学记数法,例如3e8 ,它是 3 x 10 的 8 1.616e-35 , 1.616e-35是1.616e-35...

Global site tag (gtag.js) - Google Analytics