シフト演算で掛け算 基本情報技術者試験
数値の扱い
シフト演算で掛け算
次に、シフト演算を使ってどのように掛け算が行われているか見てみましょう。
テキストの例は、ある変数aに21を掛ける例が出ています。
この場合、21を2のn乗の数の足し算になるように分解します。
2のn乗は、2の0乗が1、2の1乗が2、2の2乗が4、2の3乗が8、となり、
あとは、16、32、64、128と続いていきます。
よって、2のn乗は、nが0から順番に、1,2,4,8,16,32,64,128と続きます。
これらの数値を使って21を表すと、16+4+1で表すことが可能です。
これを使って、元の式を変形すると、
a×21は、a×(16+4+1)となります。
さらに分解すると、a×2の4乗 + a×2の2乗 + a×2の0乗となります。
ここで、シフト演算を利用すると、
a×2の4乗は、aを4ビット左シフトすると求まります。
a×2の2乗は、aを2ビット左シフトすると求まります。
a×2の0乗は、aの値そのままとなります。
そして、これらを全て加えると求める値が求まります。
続きはこちら ↓↓↓