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

时间:2016-10-03 21:45:11

标签: java arrays byte bits

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

这样的数组

我想生成256个索引的数组。从索引0开始,这将是arrayofbits[0] = "00000000"索引1 arrayofbits[1] = "00000001",依此类推到第255个索引arrayofbits[255] = 11111111。如何生成它?

3 个答案:

答案 0 :(得分:4)

试试这个:

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

答案 1 :(得分:1)

您可以使用:

String asString = Integer.toBinaryString(32);

将字节转换为二进制字符串。也就是说,32变为100000

如果您想将字符串"111"转换为小数值111,可以使用:

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

返回111(一百一十一)。

但是,我认为您只关心第一部分(将"111"转换为111对我来说没有多大意义。)

答案 2 :(得分:0)

管理编码解决方案。也许我对自己的问题不太清楚,无论如何,谢谢所有帮助过我的人。

  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})$", "$1");
   s = StringUtils.leftPad(s, 8, "0");
   arrayofbits[i] = s;
   System.out.println("index " + i + " " + s + "\n");


  }