我需要编写一段代码,将二进制值输出到用户定义的数字(0-7)。我们不能使用 .toBinaryString 它必须使用循环(最好是 for 循环)。
输出应该是带有填充零的三列。
例如)用户输入 7
001
010
100
101
110
111
似乎它应该如此简单,但我似乎无法正确处理。
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 循环。
我会创建你自己的 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)) );