シフト演算

用語の解説

シフト演算とは

(シフトエンザン,ビットシフト演算,bit shift operation,shift operation,)
シフト演算とは、ビットの列を左または右にずらす操作のことである。
シフト演算のうち、2進数で羅列された各ビットを左にずらす操作を左シフト、右にずらす操作を右シフトと呼ぶ。 プロセッサのレジスタの幅は固定であるため、シフトを行うことで左右どちらかのビットがあふれ出る。 このあふれ出るビットと符号ビット(最上位ビット)の扱いによって、算術シフトもしくは論理シフトの2種類に大別できる。 算術シフト(左シフト)は、符号ビットをそのまま残し、あふれ出たビットを切り捨て、空いたビットに0を挿入する。 算術シフト(右シフト)は、符号ビットをそのまま残し、あふれ出たビットを切り捨て、空いたビットに符号ビットと同じ値を挿入する。 論理シフトは、符号ビットは意識せず、あふれ出たビットを切り捨て、空いたビットに0を挿入する。 ビットを1つずらすことで左シフトは元の値の2倍(2^n乗)、右シフトは元の値の1/2倍(1/2^n乗)になる。 この法則を利用して、シフト演算を用いて乗算や除算を行うことができる。 理論上、算術演算子を用いた通常の演算より処理速度が速くなるが、一般的なアプリケーション開発において近年のコンパイラ性能向上により最適化が適切に働くのでシフト演算で記述するメリットがないこと、ソースコードの可読性に影響があることから、特別な場合を除き、乗算や除算をシフト演算で記述することは少ない。

用語解説出典   powered by. Weblio

CNET Japan

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]