この記事ではコンピュータの掛け算と割り算に使われるシフト演算の説明と計算をします。筆者が情報数学の基礎を勉強していて「すげー」と思った部分を書いているので間違っている点があればコメントで指摘していただけると喜びます。 掛け算と割り算 よくある誤解として、コンピューターの掛け算は足し算をループして実装していると思われがちですが、そんなことはありません。 値は全て2進数で扱われるので足し算であれば0010+0010=0100みたいな計算になるのですが、例えば4\times2の計算を みたいに一つずつ足しながらやるかと言えば、こんなクソコーダーみたいな実装はしないのです。 よく見ると、4の2進数0100と8の2進数1000だと、1の位置が1ビット左に移動してますね。このように、nビット分移動した時に乗数が2^nになることをシフトといい、これを使った計算をシフト演算というのです。コンピューターはこ