java - 生成所有可能的 8 位二进制字符串

标签 java

我有一个密码 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/

相关文章:

java - Android widget RemoteViewsFactory 成员数据不持久化?

java - Wicket - 陈旧页面异常 - 如何调试?

java - Play Framework 2.1 中 View 的相对时间

java - 引用引用数组的方法?

java - JLabel 未显示在 JPanel 上

Java Soap 客户端太慢

java - 具有输入验证功能的简单可编辑 JTable

java - Spring Batch 决策者没有重复

java - Spring MVC - POJO 抛出无效 spring 的异常 :form information how to how to catch in controller

java - Tyrus WebSockets (Java) - 如何设置客户端本地 ip 地址