C言語なら、俺に聞け! <27>
■ このスレッドは過去ログ倉庫に格納されています
0607603
NGNGint log_2( int x ) {
if ( (x & x-1) != 0 ) return -1;
--x;
x = (x & 0x55555555) + (x >> 1 & 0x55555555);
x = (x & 0x33333333) + (x >> 2 & 0x33333333);
x = (x & 0x0f0f0f0f) + (x >> 4 & 0x0f0f0f0f);
x = (x & 0x00ff00ff) + (x >> 8 & 0x00ff00ff);
return (x & 0x0000ffff) + (x >>16 & 0x0000ffff);
}
でしょ? 実行してみて 問題ある?
■ このスレッドは過去ログ倉庫に格納されています