位操作 Java

Bit Manipulation Java

所以,假设我设置了字节

0101 0101 0110 0010 1101 0100 1111 0010 1011 0010 0101 1010

如何独立获取每个字节?例如,打印它们使输出为:

0101
0101
0110
0010
1101
0100
1111
1101
0010
1011
0010
0101
1010

非常感谢!

一些代码:

protected String parse(StringBuilder builder) {

    String pBinary = getBinary(p);
    String qBinary = getBinary(q);
}

private String getBinary(BigInteger integer) {
    StringBuilder builder = new StringBuilder();

    for (byte bytes : integer.toByteArray()) {
        builder.append(" ");

        String binary = Integer.toBinaryString(Byte.toUnsignedInt(bytes));

        if (binary.length() != 8)
            for (int i = binary.length(); i < 8; i++)
                builder.append(0);

        builder.append(binary);
    }

    return builder.substring(1);
}

p 和 q 是大整数。

想法是在 StringBuilder 的开头插入两个二进制文件的 "Mixture"。

所以如果二进制101101001 01010111并且二进制210111010,

混合物将导致 01101001 00000000 01010111 10111010

如果您有一个字符串,其中的单词由空格分隔,您可以这样做

String[] words = myString.split("\s+")

更详细的答案在这里,How do I split a string with any whitespace chars as delimiters?