`
woodenfish
  • 浏览: 5600 次
社区版块
存档分类
最新评论

float或double的IEEE745 二进制形式

    博客分类:
  • JVM
阅读更多

下面两个函数可以返回float和double类型的数据的IEEE745二进制形式

public String convert(float num) {
		int intVal = Float.floatToIntBits(num);
		return intVal > 0 
				? "0" + Integer.toBinaryString(intVal) 
				: Integer.toBinaryString(intVal);
	}

	public String convert(double num) {
		long longVal = Double.doubleToLongBits(num);
		return longVal > 0 
				? "0" + Long.toBinaryString(longVal) 
				: Long.toBinaryString(longVal);
	}

 第二个函数有个bug,当形参为-0,+0,+0.0, +0.0d时,只返回0;但是形参为-0.0和-0.0d时,可以正确返回1000000000000000000000000000000000000000000000000000000000000000。第一个函数也有同样的问题。

还没想到很好的解决方法

分享到:
评论

相关推荐

    IEEE 745标准的32位二进制浮点数与十进制浮点数转换代码C#

    本代码实现了十进制浮点数与IEEE745标准的32位二进制浮点数的互相转换,二进制浮点数有十六进制和二进制两者表示形式,

    labview IEEE-754单精度数值至字符转换

    IEEE二进制浮点数算术标准(IEEE 754)是1980年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷...

    IEEE754浮点数据

    根据IEEE754规定写了个Double、Float型数据与二进制、十进制、十六进制(高高低低、低低高高)转换的方法。

    IEEE-754双精度数值至字符转换

    IEEE二进制浮点数算术标准(IEEE 754)是1980年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷...

    计算机单片机float存储格式(讲得很好)

    如 10.0 的二进制表示为 1010.0, 科学表示法表示为: 1.01exp110, 即 (1+0*1/2+1*1/4)*2^3. 小数点每左移一位指数要加1, 每右移一位指数要减1. 其存储格式符合IEEE标准, 即 数据格式 符号位 底数位 指数位 单精度 ...

    深入C/C++浮点数在内存中的存储方式详解

    任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU...

    mysql下float类型使用一些误差详解

    单精度浮点数用4字节(32bit)表示浮点数采用IEEE754标准的计算机浮点数,在内部是用二进制表示的如:7.22用32位二进制是表示不下的。所以就不精确了。mysql中float数据类型的问题总结 对于单精度浮点数Float: 当...

    Java 基本知识之基本数据类型

    Java 基本数据类型   Java的基本类型有8种。 按大类分,Java 有两大数据类型:内置数据类型、引用...float 数据类型是单精度、32位、符合IEEE 754标准的浮点数; 默认值是0.0f; double 数据类型是双精度、64 位、符合

    浮点数在计算机中存储方式是怎样的

    如果胡乱分配,那世界岂不是乱套了么,其实不论是float还是double在存储方式上都是遵从IEEE的规范的,float遵从的是IEEE R32.24 ,而double 遵从的是R64.53。  无论是单精度还是双精度在存储中都分为三个部分:  1....

    详谈javascript精度问题与调整

    在JS中数值类型就只有number类型,没有int,float,double之分,number类型实际上存储的就是IEEE754标准的浮点数,计算规则也是。 在表达式计算前,先要按照标准将两个数转成浮点数。 IEEE 754规定: 1.32位的浮点数...

    哈明窗matlab代码-wlsfilter:加权最小二乘滤波

    哈明窗matlab代码基于加权最小二乘的快速...64位操作系统的二进制MEX文件,分别具有扩展名mexa64和mexw64。 C API int FastGlobalSmoothing(float *图像,int宽度,int高度,float sigma,float lambda,intsolver_ite

    《你必须知道的495个C语言问题》

    这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 27  2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的...

    C语言FAQ 常见问题列表

    o 3.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外部数据文件进行 "二进制" 读写。能否关掉填充, 或者控制结构域的对齐方式? o 3.11 为什么 sizeof 返回的值大于结构的期望值, 是不是尾部有填充? ...

    你必须知道的495个C语言问题(PDF)

    部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11 为什么sizeof 返回的值大于结构的期望值, 是不是尾部有填充? . . ...

    Java虚拟机规范(Java SE 7)

    4.2.1 类和接口的二进制名称 ....................................... 90 4.2.2 非全限定名 ............................................... 90 4.3 描述符和签名 ........................................

Global site tag (gtag.js) - Google Analytics