ビット演算
ソースコード
nachia/misc/bit-operations.hpp
主な機能
64 ビットのビット演算を計算する。マクロ __GNUC__
が定義されているときはビルトイン関数を使う。
MsbIndex
int MsbIndex(unsigned long long x) noexcept;
- $x\neq 0$
下位ビットから順に $0$~$63$ とするとき、立っているビットのうち最も大きいものの番号を返す。
LsbIndex
int LsbIndex(unsigned long long x) noexcept;
- $x\neq 0$
下位ビットから順に $0$~$63$ とするとき、立っているビットのうち最も小さいものの番号を返す。
Popcount
int Popcount(unsigned long long x) noexcept;
立っているビットの個数を返す。
参考
- https://www.mathenachia.blog/re-nouse-msb-method/