比如double a = 1234.5678;它在二进制中是如何表示的呢??整数有toBinaryString方法可以看二进制码,不过Double好象没有

解决方案 »

  1.   

    浮点数,是指小数点在数据中的位置可以左右移动的数据,它通常表示成: N=M×R(E) 其中,E为R的上标,这回复框内编辑部出来。而R计算机中一般规定为2,8,16.而计算机中通常将浮点数表示成  :   符号位+E+M     E就是浮点数的阶码,占用m位,含阶码的一位符号;M是浮点数的尾数,占用n位;  所以,浮点数就有 1+m+n  位。
      

  2.   

    有啊,Double 中有个 doubleToLongBits 和 doubleToRawLongBits 的静态方法,
    可以将一个与 double 的内部二进制相同的 long 型数据,因为 double 和 long
    均采用 64 个二进制位表示。public class Test {
        public static void main(String [] args) {
            long pi = Double.doubleToLongBits(Math.PI);
            System.out.println(Long.toBinaryString(pi));
        }
    }这样输出的结果就是 double 的圆周率在计算机内在二进制位。同样的,Float 有类似的方法转为 int 类型。
      

  3.   


    从来没注意过,学习了,如果想了解详情,Google搜索一下 IEEE754