2

私は10101、1000、11101、....などの番号を持っています。ビットセットクラスを使用してこれらの数値を格納したいのですが、その方法がわかりませんか?助けてください

4

3 に答える 3

1

代わりにバイト配列を使用する必要があります。

于 2012-06-14T08:33:50.477 に答える
1

標準の Java SE API にはBitSet実装があります。それを使用してみてください。

于 2012-06-14T08:48:16.603 に答える
1

2 進数表現を使用して を作成するBitSet場合は、次の 2 つの手順で行うことができます。

  • 文字列とベースを引数として取るBigIntegerコンストラクターを使用します。バイナリの場合、基数は 2 です。

  • BitSet.valueOf( )でBigInteger.toByteArray()を呼び出しBitSetて、 のバイト配列表現から を初期化します。BigInteger

例えば

BigInteger a = new BigInteger("10101", 2); //base 2 for binary
BitSet aBits = BitSet.valueOf(a.toByteArray());

BitSet.valueOf()は Java 7 の新機能であるため、以前の Java バージョンでは機能しません。

編集:

文字列で初期化するのが好きではなくBigInteger、2 進数が 64 ビットに収まる場合は、Java 7 のバイナリ リテラルBigIntegerを使用して、代わりにusing BigInteger.valueOf(long)メソッドを初期化することもできます。

于 2012-06-14T09:00:22.457 に答える