ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
レジスターや変数のビット列を右方向ないし左方向にずらすビット演算。
ビットシフト演算のみでは、2±nの計算しかできないため常に偶数倍または偶数分の一(正確には2の累乗)しか求められないが、これに加算を加えれば、奇数倍を求めることも可能である。ただし、奇数分の一(正確には2の累乗でない数を割る数とする除算)は簡単には実現できない。
高級言語の場合はコンパイラー次第であるが、アセンブリ言語の場合、CPUが持つ乗算命令や除算命令を用いるより高速に結果を求められるため、古くよりよく使われている。
xが引数、yに結果を入れるとすると、次のようになる。
必要な組み合わせが増える倍率の場合は乗算命令を使うより遅くなる可能性があるが、古く8ビットMPUや一部の16ビットMPUなどのように乗算命令や除算命令を持たないMPU、持っていても非常に遅いMPUなどでは、アセンブリ言語でプログラミングする際に有用なノウハウであった。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます