【ビットシフト演算】計算処理の高速化

この記事では、ビットシフト演算による掛け算や割り算の計算高速化の原理についてまとめました。

## 【ビットシフト演算とは】左シフト演算、右シフト演算

ビットシフト演算とは、桁を左右にシフトさせる演算です。
左に移動する場合を「左シフト演算」、右は「右シフト演算」といいます。

左シフト演算

記号は「<<」で、ビット列を左にずらします。(余ったところは0で埋められます)
2進数で1つずらす毎に、値が2倍になります。

使用例 結果 説明
0011 << 1 0110 3<<1 = 6となり、2倍するのと同じ効果

※n進数の場合、1ビット右にシフトするとn倍になる

右シフト演算

ビット列を右にずらします。(余ったところは0で埋める)
2進数で1つずらす毎に、値が2で割られます。

使用例 結果 説明
0011 >> 1 0001 3 >> 1 = 1となり、2で割るのと同じ効果

※n進数の場合、1ビット左にシフトすると1/n倍になる

## 【応用例】高速化

普通の掛け算や割り算はコンピュータにとって重たい処理です。
そこで、コンピュータではビットをずらすだけのビット演算を使うことで掛け算・割り算の計算を高速化しています。

## 【計算例】

パラメータ名 説明
問題1 |正の整数xを以下のようにシフト演算すると値は何倍になるか。
①2ビット左にシフト
②xを加算
③1ビット左にシフト
解答1 (2^2+1)×2^1=(4+1)×2=5×2=10倍

【関連記事】
電気・電子回路入門

コメント

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