如何用 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");
}
假设我有一个像 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");
}