0

インデックスを取り、そのインデックスの「ビット」を から0に切り替える単純なメソッドを作成する必要があります1。このためのビット演算子を書くのに問題があります。私はそれが簡単であることを知っていますが、私はそれを得ることができません。以下は、メソッドの外観です。前もって感謝します!

/** 
 * 32-bit data initialized to all zeros. Here is what you will be using to represent
 * the Bit Vector.
 */

private int bits;

/** You may not add any more fields to this class other than the given one. */

/**
 * Sets the bit (sets to 1) pointed to by index.
 * @param index index of which bit to set.
 *        0 for the least significant bit (right most bit).
 *        31 for the most significant bit.
 */
public void set(int index)
{
            //It is here where I can not figure it out. Thank you!
    System.out.println(~bits);
    System.out.println("setting bit: " + bits + " to: " + index);
}
4

1 に答える 1

4

を使用する必要がありますBitSet。これを自分でやりたい場合は、次のように言えます。

public void set(int index) { 
    bits |= (1 << index);
}

これが宿題で、上記のコードが魔法のように見える場合は、ビットごとの演算子についてよく読む必要があります。

このコードは次のように解釈できます。

  • 数字の 1 から始めて、そのすべてのビットをindexnumber 回移動します。
  • 前のステップの値で 'edの値とbits等しい値を設定しますbits OR
于 2013-01-18T05:38:12.483 に答える