Печатать в массиве Java Char как двоичный файл

У меня есть массив символов

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-битный двоичный файл?


person Matthieu Riegler    schedule 23.04.2013    source источник
comment
Взгляните на: stackoverflow.com/questions/917163/   -  person prashant    schedule 23.04.2013
comment
печать одного символа: stackoverflow.com/questions/6381504/ Добавить цикл просто.   -  person Vincent van der Weele    schedule 23.04.2013
comment
Это не то же самое, что те ссылки, преобразование в двоичный код такое же, но 8-битная часть не такая.   -  person masoud    schedule 23.04.2013


Ответы (2)


Используйте 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 ...

person masoud    schedule 23.04.2013

если вы выводите 0000000000000000f848484..., то

    for(char c : myArray) {
        System.out.printf("%02x", (int)c);
    }
person Evgeniy Dorofeev    schedule 23.04.2013
comment
Это не выводит двоичный код;) - person Matthieu Riegler; 23.04.2013