リスキリング|情報技術者への歩み、デジタルを使う側から作る側へ

情報技術者のスキルを身に付け、デジタルを提供する側になれば未来で勝ち組になれると思うので頑張る!

「シフトによる乗算の求め方」についてわかりやすく解説|シフト演算(基礎理論・基本情報技術者試験)

シフト演算は、基本情報技術者試験の基礎理論の重要なトピックの一つです。

ここでは、「シフトによる乗算の求め方」についてわかりやすく解説します。

amprime.hatenablog.com

 

|例題「2進数mの9倍の値を求める方法」で解説

 シフト演算を利用した乗算では、2進数の桁移動を用いて数値を拡大する方法があります。

 なお、桁移動によってオーバーフローが発生しないものとします。

 

 まず、2進数mの9倍の値を求めるためには、mを3ビット左にシフトしてからm自体を足し合わせることで計算できます。

 

>以下は手順の通りです。

 

1.2進数mを3ビット左にシフトします。このとき、右に3つの0を追加します。シフトによって数値は拡大されます。

 

2.シフトした結果を元の数値mと足し合わせます。これにより、9倍の値を得ることができます。

 

>例として、2進数mが「1101」である場合を考えます。

>以下は手順の通りです。

 

1.2進数mを3ビット左にシフトします。すると、mは「1101000」となります。

 

2.シフトした結果と元の数値mを足し合わせます。計算すると、「1101 + 1101000」ですが、オーバーフローは発生しないので、繰り上がりの処理は不要です。結果は「1110101」です。

 

したがって、2進数mの9倍の値は「1110101」となります。

amprime.hatenablog.com

amprime.hatenablog.com

 

|まとめ

 以上が、シフト演算を用いた2進数の9倍の計算方法の解説です。

 シフト演算を利用した乗算は、ビット演算の特性を活かした高速な計算方法です。

 オーバーフローに注意しながら適切に桁移動を行うことで、効率的に乗算を行うことができます。

 シフト演算の理解と適切な応用により、高速な演算を実現することができます。

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com

amprime.hatenablog.com