Как преобразовать массив битов в один символ в Java? - PullRequest
0 голосов
/ 26 января 2019

Я работаю с массивом из 8 бит и пытаюсь преобразовать его в один символ в Java.Я пытаюсь сделать что-то вроде

byte[] bytes2 = {0,0,0,0,0,0,0,0};
        char c = (char) bytes2);

Это вызывает ошибку компиляции, что я не могу записать байт [] на символ.Я получил его для компиляции, но не работал правильно, назначив char c только одному из элементов массива.Я просто застрял в этой части, и был бы признателен за небольшую помощь.
Спасибо

Ответы [ 2 ]

0 голосов
/ 26 января 2019

byte[] - массив байтов, 1 байт - 8 бит, 1 символ - также 8 бит.

Вы инициируете byte[] с {0,0,0,0,0,0,0,0};Это означает, что ваш магазин 8 * 8 = 64 бита в переменной bytes2.

Таким образом, вы не можете хранить 64-битные данные в одном символе (8 бит).

Но вы можете сделать это:

byte[] bytes2 = {0,0,0,0,0,0,0,0};
char c = (char) bytes2[0]; // store first element (8 bit) into single char (1 bit) and cast it.
0 голосов
/ 26 января 2019

Вы не можете конвертировать его в один char.Вместо этого вы можете преобразовать его в один String, а затем преобразовать его в массив char, как показано ниже,

    byte[] bits2 = {0, 0, 0, 0, 0, 0, 0, 0};
    String value = new String(bits2);
    char[] chars = value.toCharArray();
...