基礎理論
アルゴリズム
コンピュータ構成要素
システム構成要素
ソフトウェア
ハードウェア
ヒューマンインタフェース
マルチメディア
データベース
ネットワーク
セキュリティ
システム開発技術
ソフトウェア開発管理技術
😀 mypage
🥇 ranking
📊 chart
📏 rule
No.108 非負の2進数b1b2…bnを3倍にしたものはどれか。
⭕️
💾
🖊 ☑️
⭕️ [[ AnswerCalc[0] ]] % A [[ AnswerCalc[1] ]]
2進数はビット列全体を左へnビット分シフトすると2n倍、右へnビット分シフトすると1/2n倍になるという特徴を持っています。

この問題では、全体を1ビットだけ左にシフト(×2)してできるビット列に対して元のビット列の加算(+1)するという処理を組み合わせることで、3倍にする演算を行っています。
  1. 左へ1ビット分シフトする。空白になる最右ビットは0で埋める。
     b1b2…bn
      ↓
     b1b2…bnO
  2. 1.で得られたビット列に元のビット列を加算する。
     b1b2…bnO+b1b2…bn
  • b1b2…bn0+b1b2…bn
    正しい。3倍になります。
  • b1b2…bn00-1
    左へ2ビットシフトしたあと-1しているので、結果は4倍-1です。3倍ではありません。
  • b1b2…bn000
    左へ3ビットシフトしているので、結果は23=8倍になります。
  • b1b2…bn1
    左へ1ビットシフトしたあと+1しているので、結果は2倍+1です。3倍ではありません。
💾 ✔️
[[ d.CommentTxt ]]
🏠 >   基本情報技術者試験 >     テクノロジー >     基礎理論 >  
< >
🥇