「シフト演算」が必要な理由

コンピュータでシフト演算が必要な理由 プログラミング

コンピュータで使われる「シフト演算」が必要な理由を考えます。


結論から言うと、

「シフト演算」が使われる理由は、計算を高速化するためです。

と言っても、どういう理論で計算スピードが上がるのか

実際に例を使って考えていきたいと思います。


シフト演算とは?

一般的に、シフト演算とは

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倍近くのステップ差があることがわかりました。


このステップ数の違いが、「計算の高速化」なんですね。

コメント

タイトルとURLをコピーしました