float或double的IEEE745 二进制形式
程序员文章站
2022-05-20 18:26:40
...
下面两个函数可以返回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。第一个函数也有同样的问题。
还没想到很好的解决方法
上一篇: 春季泡脚可预防疾病 泡脚养生五种方法
下一篇: 九个小动作排清毒素 光脚走路益于机体排毒