Java:如何输出所有可能的二进制组合(256个不同的序列)?

use*_*290 2 java binary

我需要创建一个输出所有可能的二进制组合的函数(2 ^ 8 = = 256个不同的8位序列.).我真的很难过.我必须使用嵌套循环来做,我不知道如何去做.以下是我到目前为止所尝试的内容.有人告诉我,我可以使用8个嵌套循环编写这个程序,每个循环从0到1; 此外,我可以尝试使用位操作运算符.

虽然我下面的内容显然是错误的,但我尽力表明我至少尝试过这个.我还需要在每个结束括号后添加新行,以分隔输出.

输出应如下所示:

00000000

00000001

00000010

00000011

00000100

...

11111110

11111111

public static void outputBinary(){

int[][][][][][][][] num = new int[2][2][2][2][2][2][2][2];

    for (int i = 0; i < 2; i++){

    for (int j = 0; j < 2; j++){

    for (int k = 0; k < 2; k++){

    for (int l = 0; l < 2; l++){

    for (int m = 0; m < 2; m++){

    for (int n = 0; n < 2; n++){

    for (int o = 0; o < 2; o++){

    for (int p = 0; p < 2; p++){

        System.out.print(num[i][j][k][l][m][n][o][p]);

    } }}}}}}}
Run Code Online (Sandbox Code Playgroud)

}

谢谢你的期待.

Asa*_*aph 6

不需要阵列.以下是对代码的轻微修改,将输出所有排列.

for (int i = 0; i < 2; i++){
  for (int j = 0; j < 2; j++){
    for (int k = 0; k < 2; k++){
      for (int l = 0; l < 2; l++){
        for (int m = 0; m < 2; m++){
          for (int n = 0; n < 2; n++){
            for (int o = 0; o < 2; o++){
              for (int p = 0; p < 2; p++){
                System.out.println("" + i + j + k + l + m + n + o + p);
              }
            }
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

必须使用嵌套循环吗?因为当你简单地利用从0到255的所有数字的二进制表示覆盖每个排列的事实时,这很简单.

for (int i=0; i<256; i++) {
    System.out.println(Integer.toBinaryString(i));
}
Run Code Online (Sandbox Code Playgroud)