コンピュータで使われる「シフト演算」が必要な理由を考えます。
結論から言うと、
「シフト演算」が使われる理由は、計算を高速化するためです。
と言っても、どういう理論で計算スピードが上がるのか
実際に例を使って考えていきたいと思います。
シフト演算とは?
一般的に、シフト演算とは
2進数の列を 左 or 右 にずらす操作のこと です。
それでは、左 or 右 にずらすことで何がおこるのでしょうか?
シフト演算の定義では、2進数というワードが出てくるのですが、
ひとまず2進数という条件は置いておいて、
左 or 右 にずらす操作について考えてみます。
上記をまとめると、
10進数表記をシフトすると、10倍 or 1/10倍されています。
2進数表記をシフトすると、2倍 or 1/2倍されています。
つまり、左、右にずらすシフトという処理は、
〇進数表記をシフトすると、〇倍 or 1/〇倍されるという事です。
シフト演算をつかうとどのくらいメリットある?
はじめに、シフト演算がある理由は「計算の高速化」とお話ししました。
それでは、
どのくらいのシフト演算には、使うことでメリットがあるのか考えていきます。
コンピュータでは「×」という処理は、「+」処理の積み重ねで処理されています。
例えば、10×10 というのは、コンピュータでは、10を10回足し合わせています。
それを踏まえた上で、シフト演算のメリットを考えます。
「×」:10ステップ
に対して
シフト演算:3ステップです。
「89」を10倍にするという、小さな値で比べても
3倍近くのステップ差があることがわかりました。
このステップ数の違いが、「計算の高速化」なんですね。
コメント