1

%演算子を使用せずに、32ビット整数が4の倍数であるかどうかをすばやく確認する方法はありますか(C ++の場合)。

4

1 に答える 1

22

はいあります。

((i & 3) == 0)

これはこれ以上速くないかもしれないことに注意してください。また、優れた最適化コンパイラは、定数4に対するモジュラスをとにかく最速の演算に変換するため、これを自動的に生成する可能性があります。

興味がある場合は、生成されたコードを確認してください。

于 2012-07-11T15:45:46.310 に答える