不要用Integer.toBinaryString()方法,而是用三元操作符和按位操作符来显示二进制的1和0。求各路大神顶力支持
------解决方案--------------------
class Test {
static final int INT_HIGH_BIT=1<<31;
public static void main(String[] args) {
int x=24423;
System.out.println(getBinaryString(x));
System.out.println(Integer.toBinaryString(x));
System.out.println(getBinaryString(0));
System.out.println(Integer.toBinaryString(0));
}
public static String getBinaryString(int x) {
StringBuffer buffer=new StringBuffer();
boolean start=false;
int y, z;
for (int i=0; i<32; i++) {
y=x<<i;
z=y&INT_HIGH_BIT;
start=start?start:i==31?true:z==INT_HIGH_BIT;
buffer.append(start?z==INT_HIGH_BIT?"1":"0":"");
}
return buffer.toString();
}
}