我有一个密码 key ,格式为“XY XY+1 XY+2 XY+3 XY+4 XY+5 FF FF”,其中 XY 是未知字节,例如,XY 可能是 00000000,因此 XY+1 是 00000001。 另外,FF 是一个常数,因此始终为 11111111。
我有一个 addBinary()
方法,它只是将 1 添加到我给它的任何二进制字符串中,但是,我发现很难生成由“xxxx ... 11111111 11111111”组成的所有二进制字符串。
我还在 StackOverflow 上发现了这个 printB()
方法,它生成字符串,但只是不确定如何将 FF 硬编码到其中。
static void printB()
{
for(int i = 0; i < Math.pow(2,8); i++)
{
String format="%0"+8+"d";
System.out.printf(format,Integer.valueOf(Integer.toBinaryString(i)));
System.out.println();
}
}
任何有关如何生成此字符串的帮助将不胜感激
最佳答案
如果你想让二进制数带有 0-s 前缀,你必须做一些工作。这里我使用了一个用 0 填充的 StringBuilder,从末尾替换了没有 0 填充的二进制表示。
for (int i = 0; i <= 0xFF; i++) {
StringBuilder builder = new StringBuilder("00000000");
String binary = Integer.toBinaryString(i);
builder.replace(8 - binary.length(), 8, binary);
System.out.println(builder);
}
关于java - 生成所有可能的 8 位二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46646934/