【问题标题】:Print in Java Char array as binary在 Java Char 数组中打印为二进制
【发布时间】:2013-04-16 07:57:59
【问题描述】:

我有一个字符数组

static char[] myArray  ={   
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x48, 0x48, 0x48, 0xb0, 0x00, 0xc0, 0x20,
0x20, 0x20, 0xc0, 0x00, 0xc0, 0x20, 0x20, 0x20, 0xc0, 0x00, 0x40, 0xa0, 0xa0, 0xa0, 0x20, 0x00,
0x00, 0x20, 0xf0, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0xf8, 0x08,
};

如何将其打印为 8 位二进制?

【问题讨论】:

标签: java binary system.out


【解决方案1】:

为每个项目使用toBinaryString

for (int i = 0; i < myArray.length; i++) {
        String b = Integer.toBinaryString(myArray[i]);

        if (b.length() < 8) {
            b = "000000000".substring(0, 8 - b.length()).concat(b);
        } else {
            b = b.substring(b.length() - 8);
        }

        System.out.print(b + " ");
 }

输出

00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 11111000 01001000 01001000 01001000 1011000 ...

【讨论】:

    【解决方案2】:

    如果你输出为0000000000000000f848484... 那么

        for(char c : myArray) {
            System.out.printf("%02x", (int)c);
        }
    

    【讨论】:

    • 这不输出二进制;)
    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2011-07-12
    • 1970-01-01
    • 2018-10-23
    • 2019-09-26
    相关资源
    最近更新 更多