2015-06-18 3 views
0

У меня есть двоичная строка xl и xrкак преобразовать длинную двоичную строку в символ

xl = "11110101011100001001011010011100" 
xr = "01100101111100011000011000101011" 

Я хочу добавить xl и xr и преобразовать эту бинарную строку 8 символов (1 символ = 8 бит). Можете ли вы помочь мне получить этот код?

String Chippertext = ""; 
char nextChar; 

for(int i = 0; i <= chippertext.length()-8; i += 8) //this is a little tricky. we want [0, 7], [9, 16], etc 
{ 
    nextChar = (char)Integer.parseInt(chippertext.substring(i, i+8), 2); 
    Chippertext += nextChar; 
} 
Thasil.setText(Chippertext); 

Я уже пробовал этот код, но персонаж не совпадает с символом на таблице ascii.

+2

«персонаж не совпадает с персонажем на таблице ascii» - какой вклад вы предоставили, что вы ожидали, и что вы получили? На какую «таблицу аций» вы посмотрели? (Я бы * сильно * советовал не иметь переменные 'Chippertext' и' chippertext' btw ...) Тот факт, что ваша первая строка начинается с «11110101», предполагает, что на самом деле это не ASCII ... (ASCII - это 7 бит). Если это произвольные двоичные данные, это очень плохой способ преобразования его в текст. –

+0

@moffeltje: Единой кодировки нет как «расширенный ASCII». Существует множество кодировок, которые являются 8-битными расширениями для ASCII, но вам нужно будет точно указать, какой из них имел в виду ... и даже тогда это не то же самое, что сам ASCII. –

+0

@JonSkeet gotcha, спасибо, сэр. – moffeltje

ответ

0

Вы не можете использовать символы для представления данных байтового массива, потому что есть значения, которые не эквивалентны «char».

Лучшим решением является печать каждого байтового значения в виде десятичного, шестнадцатеричного или двоичного значения.

Смежные вопросы