左シフト・右シフトによるビット列と数値の変化を、問題を解きながら確認できます。
詳しい解説を見る →この演習は、知識を確認するだけでなく、解き方を説明できるようになることを目標にしています。まず以下の例題を確認し、その後で上のトレーニングに挑戦してください。
00001101(13)を左へ2桁動かすと00110100(52)です。桁あふれがない範囲では4倍になります。
ビット幅、シフト方向、符号の有無を確認してから値を計算します。
右シフトは符号付き整数かどうかで上位ビットの埋め方が変わる場合があります。
問題を解く前に例題を読み、計算や判断の根拠を自分の言葉で説明してみましょう。
00110101→11010100。左端からはみ出たビットは捨て、右側に0を入れます。
固定ビット幅では、左シフトを単純な×2の繰り返しと考えるとオーバーフローを見落とします。
フラグ管理やビットフィールドの操作でシフトとマスクを組み合わせます。
01000000。左端に0を補います。
復習したい場合は 詳しい解説記事 を読み、上の演習問題にもう一度挑戦してください。