1のビットを数え上げる
コンパイラ組み込み関数を使わない場合,
inline u32 population_count(u32 v) { v = (v & 0x55555555U) + ((v>>1) & 0x55555555U); v = (v & 0x33333333U) + ((v>>2) & 0x33333333U); v = (v & 0x0F0F0F0FU) + ((v>>4) & 0x0F0F0F0FU); v = (v & 0x00FF00FFU) + ((v>>8) & 0x00FF00FFU); return (v & 0x0000FFFFU) + ((v>>16) & 0x0000FFFFU); }gccの組み込み関数,
int __builtin_popcount(unsigned int x)VCの組み込み関数,
unsigned int __popcnt(unsigned int value)
0 件のコメント:
コメントを投稿