bit操作 - constant_test_bit()
概要
ビットマップから任意のビットの状態を取得する
詳細
以下の引数を受け取る
- ビット番号を示す : nr
- ビットマップを保持する配列 : addr
以下の演算で算出する2つの値の論理積を取ることでaddrのビットマップからnr番目のビットの状態を取得する
- nrを[BITS_PER_LONG - 1]でマスクし、nrのBITS_PER_LONG以上のビットを落とし、算出したビットだけが1の値を生成する
- [nr >> _BITOPS_LONG_SHIFT]でBITS_PER_LONG以下のビットが全て隠れるようにシフトし、addrの算出した値をインデックスとする要素を取得する