日期:2014-05-20 浏览次数:20890 次
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中就是这个方法。很方便呀。