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

请问下关于指定位数的输出二进制格式的数
我想实现的是一个这样功能:

int i = 10;
System.out.println(Integer.toBinaryString(i));
//输出为
//1010
//可否可一个方法可以实现输出10位的二进制数 高位补0
//即输出为
//0000001010
//0001001010
//0000000010

------最佳解决方案--------------------

public static void main(String[] args) throws Exception {
System.out.println(parseToBinaryString(10));
System.out.println(parseToBinaryString(74));
System.out.println(parseToBinaryString(3));
}

private static String parseToBinaryString(int value){
String str = Integer.toBinaryString(value);
StringBuffer stringBuffer = new StringBuffer();
for(int i = 0; i < 10 - str.length(); i ++)
stringBuffer.append('0');
stringBuffer.append(str);
return stringBuffer.toString();
}

也许用formater可以直接实现?
没研究过
------其他解决方案--------------------
//0001001010 这个是106吗?
//0000000010 这个是2 吗 ?
------其他解决方案--------------------
引用:
Java code?123456789101112131415public static void main(String[] args) throws Exception {        System.out.println(parseToBinaryString(10));        System.out.println(parseToBinaryString(……

formater我实现可以按一定的宽度输出 但是高位不会自动补0
你的方法可行,但总觉得有API可以实现