便利な組み込みビット演算まとめ
table:便利な組み込みビット演算 (64bit整数)
やりたいこと GCC, Clang (GNUC) MSVC (x64) 備考・用途
1のビットを数える popcount
__builtin_popcountll(x) __popcnt64(x) オセロの石数計算
末尾に続く0の数 Count Trailing Zeros
__builtin_ctzll(x) _tzcnt_u64(x) 最下位の立っているビットの位置を得る
先頭から続く0の数 Count Leading Zeros
__builtin_clzll(x) _lzcnt_u64(x)
bitを逆順にする __builtin_bitreverse64(x) Clangのみ、オセロの盤面を180度回転
バイトスワップ _bswap64(x) _byteswap_uint64 オセロの盤面の上下反転 (flip_vertical)
参考
GNUC
5.49 Other built-in functions provided by GCC
6.61 GCC が提供するその他の組み込み関数
x64
Intel® Intrinsics Guide
その他の組込み関数
#ビット演算