4

String 型の 2 進数をビットに変換して txt ファイルに書き込む方法について質問があります。

たとえば、「0101011」のような文字列があり、ビット型「0101011」に変換してから、ディスク上のファイルに書き込みたいとします。

とにかく、文字列からビットに変換する方法があることを知りたい..

私は彼らがbitarrayを使用することを提案しているWebで検索していましたが、よくわかりません

ありがとう

4

3 に答える 3

4

これを試して:

int value = Integer.parseInt("0101011", 2); // parse base 2

のビット パターンvalueは、文字列のバイナリ解釈に対応します"0101011"value次に、ファイルに として書き出すことができますbyte(文字列が 8 桁の 2 進数であると仮定します)。

EDITも使用できますByte.parseByte("0101011", 2);。ただし、Java のバイト値は常に署名されています。8番目のビットが設定された 8 ビット値( "10010110"10 進数の 150 など)を解析しようとすると、 NumberFormatException+127 を超える値は a に収まらないため、 a が返されますbyte。より大きいビット パターンを処理する必要がない場合"01111111"、 はByte.parseByteと同様に機能しInteger.parseIntます。

ただし、バイトをファイルに書き込むには を使用することを思い出してください。これは、 1 バイトしか書き込むことはありませんOutputStream.write(int)が、int( ではない) 値を取ります。最初は値をbyte使用することもできます。int

于 2012-12-04T00:41:21.450 に答える
0

数値のオーバーフローを避けるために、以下のコードを試すことができます。

    long avoidOverflows = Long.parseLong("11000000000000000000000000000000", 2);
    int thisShouldBeANegativeNumber = (int) avoidOverflows;
    System.out.println("Currect value : " + avoidOverflows + " -> " + "Int value : " + thisShouldBeANegativeNumber);

出力を見ることができます

Currect value : 3221225472 -> Int value : -1073741824
于 2012-12-04T00:48:10.030 に答える