読者です 読者をやめる 読者になる 読者になる

Javaでビットベクトル(2)

Java

ビットベクトルをJavaで表現する方法を引き続き検討してみます。

まず、32個の値を格納できるビットベクトルを考えてみます。
以下のような感じですね。

00000000000000000000000000000000

このビットベクトルの特定の位置を1にしたり、0にしたりしようと思います。
位置を0-31(32個)で表現して、例えば、0の位置に1を立てるとします。

10000000000000000000000000000000

また、10の位置に1を立てるとします。

10000000001000000000000000000000

また、0の位置を0にしたいとします。

00000000001000000000000000000000

というようになるはずです。

つまり、特定の位置に0や1を格納できれば、ビットベクトルを表現できるはずです。
なので、以下のようなメソッドは最低必要だと思います。

setBit( pos, value );

ここで、posは、ビットベクトルのどの位置に値を設定するか表現する変数で、
valueは、実際に設定する値です。

さて、次は、最も重要なビットベクトルの表現形式について考えてみます。
まず、Javaでは、int型とlong型など様々な型がありますが、bit型などは存在しないです。

つまり、以下のように、

Bit bit = new bit [ 1000 ];

とかできないわけです。
なので、他の型を使って強引に表現するしかないということです。

次回は、ビットベクトルのJavaでの表現方法について、実装レベルで考えてみようと思います。