アフィリエイト広告を利用しています

広告

posted by fanblog

ITパスポート 過去問 21年春 問64

21年春 問題一覧へ


問題


問64 2進数10110を3倍したものはどれか。

ア 111010    イ 111110    ウ 1000010    エ 10110000



解説


2進数の掛け算を計算するには次の2種類の方法がある

■2進数をいったん10進数に変換し掛け算し2進数に戻す
2進数は下から1の位、2の位、4の位、8の位、16の位、32の位、64の位、128の位・・となる。

10110は下位から見ていくと、1の位が0、2の位が1、4の位が1、8の位が0、16の位が1となる。
そのため、2進数の10110は10進数では2×1+4×1+16×1=22となる。

22を3倍すると66。

これを2進数に直す。
66は128より小さいが、64より大きいので、64の位(下から7ビット目)が1となることがわかる
残りは66-64=2となるので、2の位(下から2ビット目)が1
残りは2-2=0なので、これで終了
結局10進数の66は、2進数に変換すると下から7桁目と2桁目に1が立つ。
1000010が答えとなる。

■「2進数を2倍するには1ビット左にシフトする」ということを使って計算
2進数を1ビット左にシフトすると2倍、2ビットシフトすれば4倍、3ビットシフトすれば8倍・・・
このことを使うと計算がとても簡単にできる。

3倍にするには2倍にしたものと1倍したものを足せばよいので
10110をまず2倍(1ビット左シフト)にしてみると 101100
これに10110を足せば、3倍になるので、101100+10110=1000010

3倍以外でもこの方法は使える。
たとえば、aを11倍するには8a+2a+aとすればよい。
つまりaを3ビットシフトしたものと、1ビットシフトしたものと、aを足せばよい。




21年春 問題一覧へ









にほんブログ村 IT技術ブログ IT技術情報へ
にほんブログ村




この記事へのコメント

   
×

この広告は30日以上新しい記事の更新がないブログに表示されております。