4

Javaで実行する次のコードを設定しました。

BitSet bitSet = BitSet.valueOf(new byte[] { (byte)15 });
System.out.println(bitSet);

驚いたことに、これは

{0, 1, 2, 3} //the indexes of the 1's in the bitset

それ以外の

{ 4, 5, 6, 7 }.

私が間違っていなければ、2の補数の15は00001111(1バイト)と書かれています。

それは、なぜBitSetがインデックスを逆方向に表示するのか疑問に思います。合理的な説明はありますか?

4

1 に答える 1

5

Java標準からの引用BitSet

このビットセットの文字列表現を返します。このBitSetにセット状態のビットが含まれているすべてのインデックスについて、そのインデックスの10進表現が結果に含まれます。このようなインデックスは、「、」(コンマとスペース)で区切られ、中括弧で囲まれて、低いものから高いものの順にリストされ、整数のセットの通常の数学表記になります。

このように、順序は「最低から最高」です。これは、最下位ビット(1ビット)が最初で、最上位ビットが最後であることを意味します。

順序は異なりますが、順序付け(左から右への表記順または最小から最大への数値順)のいずれかが意味をなします。

于 2012-06-23T01:23:20.537 に答える