2016-04-09 4 views
1

Для назначения я пытаюсь преобразовать строку в 7-битный двоичный файл. Однако нам не разрешено использовать Integer.toBinaryString (int). Это то, что я до сих порКак преобразовать строку в 7-битный двоичный код

public static int[] encodeToBit(String str) { 

    int[] convertString = new int[str.length() * 7]; 

    for (int i = 0; i < convertString.length; i++) { 
     convertString[i] = (int)str.charAt(i); 

     for (int j = convertString.length; j >=0 ; j--) { 

      while (true) { 
      convertString[i] = 

      } 
     } 
    } 
    return convertString; 
} 

Любые советы о том, как преобразовать целое ASCII представление полукокса в 7-разрядным двоичным.

Edit: Например, encodeToBit («C") должна вывести массив

[1, 0, 0, 0, 0, 1, 1]

+2

Что именно вы имеете в виду 7-разрядным двоичным? –

+0

можете ли вы дать нам пример ввода и желаемый результат? –

+0

Я думаю, что это может помочь вам достичь вашей цели HTTP : //stackoverflow.com/a/6393904/2187972 – seth2810

ответ

0

Я предполагаю, что вы хотите массив 0 и 1s с 7 на символ ..

public static byte[] encodeTo7Bits(String str) { 
    byte[] bytes = new byte[str.length() * 7]; 
    for (int i = 0; i < str.length(); i++) { 
     char ch = str.charAt(i); 
     assert ch < 128; 
     for (int j = 0; j < 7; j++) 
      bytes[i * 7 + j] = (byte) ((ch >> (7 - j)) & 1); 
    } 
    return bytes; 
} 
+0

Да , Мне нужен массив из 1 и 0, состоящий из 7 символов. Однако мне нужно вернуть int []. Я бы просто установил, что мой массив convertString равен массиву байтов? – Yaz

+0

@Yaz не уверен, почему вы хотели бы «int» сохранить 0 или 1, но вы можете легко изменить мой ответ, чтобы вместо этого использовать 'int []'. –

+0

Хорошо, спасибо! – Yaz