【问题标题】:Printing Binary values using nested loops [closed]使用嵌套循环打印二进制值 [关闭]
【发布时间】:2013-10-19 03:23:26
【问题描述】:

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

输出应该是带有填充零的三列。
例如)用户输入 7

001
010
100
101
110
111

它似乎应该如此简单,但我似乎无法正确。

【问题讨论】:

  • 顺便说一下,110 是 7。你错过了 3,011。无论如何,到目前为止你尝试过什么?
  • 110 是 6。任何以 0 结尾的二进制文件都是偶数。
  • 我很笨。 011 仍然不见了。

标签: java loops binary


【解决方案1】:
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 循环。

【讨论】:

    【解决方案2】:

    我会创建你自己的 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)) );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多