0

次のマシンコードをご覧ください

0111001101110100011100100110010101110011011100110110010101100100

これは何かを意味します。これを文字列に変換する必要があります。上記を文字列として、2を基数として(バイトに変換するために)Integer.parseInt()を使用すると、数値形式の例外が発生します。

そして、これを8個のセットに分ける必要があると思います(01110011、10111010など)。私は正しいですか?

これを正しく文字列に変換するのを手伝ってください。

ありがとう

4

3 に答える 3

11
final String s = 
  "0111001101110100011100100110010101110011011100110110010101100100";
final StringBuilder b = new StringBuilder();
for (int i = 0; i < s.length(); i+=8) 
  b.append((char)Integer.parseInt(s.substring(i,i+8),2));
System.out.println(b);

「ストレス」を印刷

于 2012-06-24T17:10:16.397 に答える
2

大きな整数を読み取るより短い方法は、BigIntegerを使用することです

final String s = "0111001101110100011100100110010101110011011100110110010101100100";
System.out.println(new String(new BigInteger('0'+s, 2).toByteArray(), 0));

プリント

stressed
于 2012-06-24T17:37:22.100 に答える
1

文字列のエンコーディングによって異なります。

ASCIIコード化文字列は各文字に1バイトを使用しますが、Unicodeコード化文字列は各文字に2バイトを使用します。エンコーディングには他にも多くの種類があります。バイナリレイアウトは、エンコーディングごとに異なります。

したがって、この文字列をバイナリ形式に書き込むために使用されたエンコーディングを見つける必要があります

于 2012-06-24T17:03:15.790 に答える