使用嵌套循环打印二进制值

时间:2013-10-19 03:23:26

标签: java loops binary

我需要编写一段代码,将二进制值输出到用户定义的数字(0-7)。 我们不能使用.toBinaryString它必须使用循环(最好是for循环)。

输出应为三列,填充零。
例)用户输入7

001
010
100个
101个
110个
111

看起来应该这么简单,但我似乎无法做到这一点。

2 个答案:

答案 0 :(得分:0)

for (int i = 1; i <= input; i++) {
    String line = "";

    for (int k = 2; k >= 0; k--) {
        line += ((i >> k) & 1) == 1 ? "1" : "0";
    }

    System.out.println(line);
}

使用两个for循环。

答案 1 :(得分:0)

我会创建你自己的toBinary()函数:

int toBinary(int x){
    StringBuilder sb = new StringBuilder("");
    while(x >= 1){
        sb.append(x%2);
        x /= 2;
    }
    return Integer.parseInt(sb.reverse().toString());
}

然后只使用该功能进行打印:

for(int i=1; i<=7; i++)
    System.out.println( String.format("%03d", toBinary(i)) );