シフト演算
その他の語句
用語の解説
シフト演算とは
(シフトエンザン,ビットシフト演算,bit shift operation,shift operation,)
シフト演算とは、ビットの列を左または右にずらす操作のことである。
シフト演算のうち、2進数で羅列された各ビットを左にずらす操作を左シフト、右にずらす操作を右シフトと呼ぶ。
プロセッサのレジスタの幅は固定であるため、シフトを行うことで左右どちらかのビットがあふれ出る。
このあふれ出るビットと符号ビット(最上位ビット)の扱いによって、算術シフトもしくは論理シフトの2種類に大別できる。
算術シフト(左シフト)は、符号ビットをそのまま残し、あふれ出たビットを切り捨て、空いたビットに0を挿入する。
算術シフト(右シフト)は、符号ビットをそのまま残し、あふれ出たビットを切り捨て、空いたビットに符号ビットと同じ値を挿入する。
論理シフトは、符号ビットは意識せず、あふれ出たビットを切り捨て、空いたビットに0を挿入する。
ビットを1つずらすことで左シフトは元の値の2倍(2^n乗)、右シフトは元の値の1/2倍(1/2^n乗)になる。
この法則を利用して、シフト演算を用いて乗算や除算を行うことができる。
理論上、算術演算子を用いた通常の演算より処理速度が速くなるが、一般的なアプリケーション開発において近年のコンパイラ性能向上により最適化が適切に働くのでシフト演算で記述するメリットがないこと、ソースコードの可読性に影響があることから、特別な場合を除き、乗算や除算をシフト演算で記述することは少ない。
CNET Japan
-
手のひらに「異彩を放つ」アートを--「Pixel 10a」の日本限定モデル「Isai Blue」
4月17日に国内発売された「Pixel 10a」。今回の製品では、新色「Isai Blue」も5月20日に加わる。日本限定モデルの中身とは?

