日期:2014-05-20 浏览次数:20743 次
System.out.println("123456的2进制: "+Integer.toBinaryString(123456));
------解决方案--------------------
这要看类型的
比如
int a = 123456; //这是整型数据,还有short,long型等等
String s = "123456"; //这是字符串类型的数据
你所谓的转换成二进制是指什么,是指它对应的内存信息还是指它对应的ascii码?
如果是整型的二进制的表现,那就用1L的就可以了
------解决方案--------------------
直接复制源码:
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)); }
------解决方案--------------------
如果我自己写就这样
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中就是这个方法。很方便呀。