我想要做的是打印一个n位长的二进制数字的所有可能性。换句话说,用一个4位的数字:
0001
0010
0100
1000..etc
老实说,我甚至不知道从哪里开始(除了我认为我需要使用一个循环,可能还有一个数组),所以任何指向正确方向的指针都将不胜感激。
发布于 2011-12-11 10:15:34
也许你可以使用一个递归算法:
public void printBin(String soFar, int iterations) {
    if(iterations == 0) {
        System.out.println(soFar);
    }
    else {
        printBin(soFar + "0", iterations - 1);
        printBin(soFar + "1", iterations - 1);
    }
}您可以像这样执行以下代码:
printBin("", 4);这将为您提供所有可能的4位二进制数。
希望这能有所帮助!
发布于 2011-12-11 10:10:56
对于一个n-bit二进制数,有2^n个“排列”。您只需要将整数从0循环到(1<<n)-1,并将每个整数转换为二进制。
发布于 2011-12-11 10:11:34
for(int i=0; i < 128; i++){
  System.out.println(Integer.toBinaryString(i));
}将最大值调整为您想要的最高值。
如果你需要填充0,今天还有另一个问题:Pad a binary String equal to zero ("0") with leading zeros in Java
https://stackoverflow.com/questions/8461438
复制相似问题