ビット演算による効率化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/01 22:52 UTC 版)
剰余演算は、除算を行って余りを得る実装となるので、その分の処理時間を必要とする。特殊な場合においては、いくつかのハードウェア上でより高速な計算方法が存在する。 たとえば、数値の内部表現に2進法を用いているコンピュータでは、2のべき乗の剰余を計算する場合に、下記のようにビットごとのAND演算を利用することができる。 x % 2n == x & (2n - 1) 例を示す(x は正の整数とする)。 x % 2 == x & 1 x % 4 == x & 3 x % 8 == x & 7 剰余演算よりもビット演算のほうが効率よく処理できるデバイスやソフトウェアでは、この変換によってより高速に計算することができる。 最適化をする コンパイラには、2のべき乗による剰余演算を検出し、自動的にAND演算に変換するものもある。これによって、プログラマは性能を犠牲にすることなく、読みやすいソースコードを記述することができる。ただし、AND演算による場合、出力は常に正の数となるので、C言語のように剰余演算の結果の符号が被除数によって定まる言語では同じ動作はしない。したがって、被除数が負になる場合は、特別な注意が必要である。
※この「ビット演算による効率化」の解説は、「剰余演算」の解説の一部です。
「ビット演算による効率化」を含む「剰余演算」の記事については、「剰余演算」の概要を参照ください。
- ビット演算による効率化のページへのリンク