2016-04-09 12 views
1

Für eine Zuweisung versuche ich, eine Zeichenfolge in eine 7-Bit-Binärdatei zu konvertieren. Wir dürfen jedoch nicht Integer.toBinaryString (int) verwenden. Dies ist, was ich bisherSo wandeln Sie eine Zeichenfolge in eine 7-Bit-Binärdatei um

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; 
} 

Irgendwelche Tipps, wie eine ganze ASCII-Darstellung eines Zeichens in ein 7-Bit-Binär-konvertieren.

Edit: Zum Beispiel encodeToBit („C") ausgeben soll das Array

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

+2

Was von 7-Bit-binär bedeuten haben Sie genau? –

+0

können Sie uns einen Eingangsabtastwert und gewünschte Ausgangs? –

+0

ich denke, das Sie Ihr Ziel erreichen helfen können http : //stackoverflow.com/a/6393904/2187972 – seth2810

Antwort

0

Ich gehe davon wollen Sie eine Reihe von 0 und 1 s mit 7 pro Zeichen ..

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

Ja , Ich brauche ein Array von 1s und 0s aus 7 Zeichen. Ich muss jedoch ein int [] zurückgeben. Würde ich also mein convertString-Array gleich einem Byte-Array setzen? – Yaz

+0

@Yaz nicht sicher, warum Sie ein 'int' brauchen würden, um eine 0 oder 1 zu speichern, aber Sie können meine Antwort leicht ändern, um stattdessen ein' int [] 'zu verwenden. –

+0

Okay danke! – Yaz

Verwandte Themen