Преобразовать двоичную строку в текст ascii? - PullRequest
2 голосов
/ 28 марта 2011

Мне было интересно, можно ли вводить двоичные числа и переводить их обратно в текст.Например, я бы ввел "01101000 01100101 01101100 01101100 01101111", и он будет преобразован в слово "привет".

Ответы [ 2 ]

6 голосов
/ 28 марта 2011

Просто некоторые логические исправления:

Здесь три шага

  1. Превращение двоичного набора в целое число
  2. Тогда целое число в символе
  3. Затем объедините строку, которую вы строите

К счастью parseInt принимает аргумент radix для базы. Таким образом, если вы либо нарезаете строку в (предположительно) массив строк длиной 8, или , обращаетесь к необходимой подстроке, все что вам нужно сделать, это (char)Integer.parseInt(s, 2) и объединить.

String s2 = "";   
char nextChar;

for(int i = 0; i <= s.length()-8; i += 9) //this is a little tricky.  we want [0, 7], [9, 16], etc (increment index by 9 if bytes are space-delimited)
{
     nextChar = (char)Integer.parseInt(s.substring(i, i+8), 2);
     s2 += nextChar;
}
2 голосов
/ 28 марта 2011

См. Ответ на этот вопрос: двоичный в текст в Java .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...