2016-04-09 10 views
1

割り当ての場合、文字列を7ビットバイナリに変換しようとしています。ただし、Integer.toBinaryString(int)は使用できません。これは私が7ビットのバイナリへのcharの整数ASCII表現に変換する方法については、これまで文字列を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; 
} 

何かアドバイスを持っているものです。

編集: 例えば、encodeToBit(「C」)が出力配列

べきである[1、0、0、0、0、1、1]

+2

と1Sあなたは7ビットのバイナリで正確に何を意味するのですか? –

+0

あなたは私たちにサンプル入力と所望の出力を与えることができますか? –

+0

私はこれがあなたの目的に到達するためにあなたを助けることができると思います。http ://stackoverflow.com/a/6393904/2187972 – seth2810

答えて

0

私はあなたがの配列をしたいと仮定0と文字ごとに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

はい私は7文字からなる1と0の配列が必要です。しかし、私はint []を返す必要があります。それでは、convertString配列をバイト配列に設定するだけですか? – Yaz

+0

@ Yazなぜ0または1を格納する 'int'が見つからないのか分かりませんが、代わりに簡単に' int [] 'を使うように自分の答えを変更できます。 –

+0

ありがとうございました! – Yaz

関連する問題