如何用 1 个字节的所有位组合填充一个数组?

How to fill an array with all the bit combinations for 1 byte?

假设我有一个像 String[] arrayofbits = new String[256];

这样的数组

我想生成一个包含 256 个索引的数组。从索引 0 开始,即 arrayofbits[0] = "00000000" 索引 1 arrayofbits[1] = "00000001" 等等,直到第 255 个索引 arrayofbits[255] = 11111111。如何生成?

试试这个:

for(int i = 0; i<256; i++ ) {
    arrayofbits[i] = i; //because everything is binary!
}

您可以使用:

String asString = Integer.toBinaryString(32);

将字节转换为二进制字符串。即 32 变为 100000.

如果您随后想将字符串 "111" 转换为十进制值 111,您可以使用:

int asDecimal = Integer.valueOf("111");

其中 returns 111 (一百一十一).

但是,我假设您只关心第一部分(将 "111" 转换为 111 对我来说意义不大)。

设法编写解决方案。可能我的问题不是很清楚,还是谢谢大家的帮助。

  String[] arrayofbits = new String[256];
  byte bytes;
  String s;

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

   bytes = (byte) i;

   s = (Integer.toBinaryString(0xFF & bytes)).replaceAll(".*(.{8})$", "");
   s = StringUtils.leftPad(s, 8, "0");
   arrayofbits[i] = s;
   System.out.println("index " + i + " " + s + "\n");


  }