日期:2014-05-20  浏览次数:20712 次

把数据转成二进制数据
我们日常写的数字是什么数据啊。
比方说,我输入123456.把这个数据转成二进制的怎么做啊。方法怎么实现啊。

------解决方案--------------------
Java code

System.out.println("123456的2进制: "+Integer.toBinaryString(123456));

------解决方案--------------------
这要看类型的
比如
int a = 123456; //这是整型数据,还有short,long型等等
String s = "123456"; //这是字符串类型的数据
你所谓的转换成二进制是指什么,是指它对应的内存信息还是指它对应的ascii码?
如果是整型的二进制的表现,那就用1L的就可以了

------解决方案--------------------
直接复制源码:
Java code

public static String toBinaryString(int i) {
    return toUnsignedString(i, 1);
    }

 private static String toUnsignedString(int i, int shift) {
    char[] buf = new char[32];
    int charPos = 32;
    int radix = 1 << shift;
    int mask = radix - 1;
    do {
        buf[--charPos] = digits[i & mask];
        i >>>= shift;
    } while (i != 0);

    return new String(buf, charPos, (32 - charPos));
    }

------解决方案--------------------
如果我自己写就这样
Java code

int a = 12345;
         StringBuffer sb = new StringBuffer();
         for(int i = 0;i<32;i++) {
             sb.insert(0, (a&1));
             a >>>= 1;
         }
         System.out.println(sb);

------解决方案--------------------
Integer.toBinaryString(123456);
jdk中就是这个方法。很方便呀。