下面两个函数可以返回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。第一个函数也有同样的问题。
还没想到很好的解决方法