比如一个int型的数123,在内存中占4个字节,以二进制补码的形式表示,toBinaryString()输出的只是一个二进制表示形式,不是我要的答案,我的问题是怎么输出内存中的这32比特,哪位高手能指点迷津,谢谢!!

解决方案 »

  1.   

    toBinaryString本来就是补码形式,只不过把前面的0省略了。你可以自己把0加上public class Test {
        final static String zero="0000000000000000000000000000000000000000000000000000000000000000";    public static void main(String[] args)
        {
             System.out.println(int2string(1)); //00000000000000000000000000000001
             System.out.println(int2string(-1));//11111111111111111111111111111111    }    static String int2string(int n) {
            String s = Integer.toBinaryString(n);
            return zero.substring(0, 32-s.length())+s;
        }    static String float2string(float f) {
            return int2string(Float.floatToIntBits(f));
        }
    }其它整数类型(short,byte,long,char)类似处理
    对于float和double,先调用Float.floatToIntBits(f)和Double.doubleToLongBits(d)转换成整数表示