Преобразование из двоичного обратно в его строковое значение в Java - PullRequest
1 голос
/ 24 января 2012

В настоящее время у меня есть строка со значением «0100100001101001» (это двоичное для слова «Привет»).Я пытаюсь понять, как взять эту строку и преобразовать ее обратно в слово «Привет»

Я использовал

String s = "Hi";   
byte[] bytes = s.getBytes();   
StringBuilder binary = new StringBuilder();   
for (byte b : bytes)   
{      
    int val = b;      
    for (int i = 0; i < 8; i++)      
    {         
        binary.append((val & 128) == 0 ? 0 : 1);         
        val <<= 1;      
    }         
}   
s = binary.toString();

, найденный на: Преобразовать строку (например,testing123) Для двоичного кода в Java

Любая помощь будет принята с благодарностью.Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Что-то вроде ..

BigInteger val = new BigInteger("0100100001101001", 2);
String hi = new String(val.toByteArray());
1 голос
/ 24 января 2012

Другое решение для разнообразия. Использует (char) кастинг. Возьмите s, чтобы быть двоичным String:

String result = "";
for (int i = 0; i < s.length(); i += 8) {
    result += (char) Integer.parseInt(s.substring(i, i + 8), 2);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...