2

私はこれを約1時間探しましたが、私の問題に固有のアドバイスを得ることができませんでした。私がやりたいのは、0と1の文字列を取得し、指定された文字列パターンに適合する文字を操作することです。例えば:

    char c = 'b'
    String s = "00000000 01100001";

ここで、cのビットを操作して、sで指定されたビットパターンと一致するようにします。結果として、cは'a'として出力されます(私がそれについて完全に間違っていなければ)。助けていただければ幸いです。

4

3 に答える 3

1

できるよ

char a = (char) Integer.parseInt("0000000001100001", 2);
于 2012-12-17T22:00:43.613 に答える
1

バイナリ文字列から整数への変換を行うには、2番目の引数を2としてparseIntを使用します。

int temp = Integer.parseInt("01100001", 2);

二項演算子(&、|、^)を使用して変更できますが、本当に必要なのが変数を割り当てることだけである場合は、キャストを使用して変更できます。

char c = 'c';    
System.out.println((char)(c&temp));

System.out.println((char)temp);
于 2012-12-17T22:05:08.253 に答える
0

どうですか:

      String s = "00000000 01100001";
      String[] w = s.split(" ");
      char c = (char)(Integer.parseInt(w[0], 2) * 256 + Integer.parseInt(w[1], 2));

これにより、各バイトの先行ゼロを省略できます。それらがそこにあることがわかっている場合は、文字列からスペースを置き換えて、1回のparseInt()呼び出しを使用できます。

      char c = (char)Integer.parseInt(s.replace(" ", ""), 2);
于 2012-12-17T22:00:34.223 に答える