2016-10-03 76 views
-1

说我有一个数组像String[] arrayofbits = new String[256];如何用1字节的所有位组合填充数组?

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

+0

你还尝试过什么吗?如果是这样,请在这里发布代码并具体解释什么不起作用。如果没有,请先给它一个镜头。 –

+4

'a [i] = i'我错过了什么? – dasblinkenlight

+1

@dasblinkenlight是的。您错过了OP不知道如何编写循环的事实。 –

回答

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"); 


    } 
+0

这实际上并没有做你在你的问题中陈述的内容,因为没有数组被填充。你能否更新这个问题来更清楚你想要做什么? – templatetypedef

+0

我的不好,我没有复制正确的编辑,现在更新了。 – aval

4

试试这个:

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

您可以使用:

String asString = Integer.toBinaryString(32); 

一个字节转换为二进制字符串。即,32变成100000

然后,如果您希望将字符串"111"转换为十进制值111你可以使用:

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

返回111(一一一)。

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