シフト演算とは?
シフト演算とは、ビット列全体を左または右にずらす演算。論理シフトは空いた桁を0で埋め、算術シフトは符号ビットを維持しながらシフトする。左シフトはおおむね2倍、右シフトはおおむね1/2倍の効果を持つ。
基本情報技術者試験の過去問では1回出題されています。
しふとえんざん
シフト演算の意味
ビット列全体を左または右にずらす演算。論理シフトは空いた桁を0で埋め、算術シフトは符号ビットを維持しながらシフトする。左シフトはおおむね2倍、右シフトはおおむね1/2倍の効果を持つ。
シフト演算の具体例
8ビットの「00000011」(3)を左に2ビット論理シフトすると「00001100」(12)になり、3×2²=12に一致する。負数の算術右シフトでは符号ビット(最上位ビット)が保持されたままシフトされる。
シフト演算は試験でどう引っ掛けられる?
論理シフトと算術シフトの違い(空いたビットを0で埋めるか、符号ビットで埋めるか)を負数の場合で問われやすい。
シフト演算と関連する用語
シフト演算が出た過去問
次の流れ図は,シフト演算と加算の繰返しによって2進整数の乗算を行う手順を表したものである。この流れ図中のa,bの組合せとして,適切なものはどれか。ここで,乗数と…
正解:a: Yの第0ビット/b: Xを1ビット左シフト,Yを1ビット右シフト
要点:シフト乗算は乗数の最下位を見てXを左・Yを右へずらす
筆算による2進乗算と同じ考え方で、乗数Yの下位ビットから順に見て、その位が1なら被乗数Xを部分積Zに加えます。判定するのは毎回Yの最下位である第0ビットなので、1回のループごとにYを右へ1ビットずらして次の位を最下位に持ってきます。同時に、桁が1つ上がった重みに合わせるためXは左へ1ビットずらします。
出典:平成29年度 春期 基本情報技術者試験 午前 問5(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。