戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2018年 春期 午前(科目A)01


問題文

ある整数値を、負数を2の補数で表現する2進表記法で表すと最下位2ビットは“11“であった。10進表記法の下で、その整数値を4で割ったときの余りに関する記述として、適切なものはどれか。ここで、除算の商は、絶対値の小数点以下を切り捨てるものとする。

選択肢

その整数値が正ならば3(正解)
その整数値が負ならば-3
その整数値が負ならば3
その整数値の正負にかかわらず0

🔒 解説は解答すると表示されます

2の補数表現と剰余の関係【午前解説】

正解の理由

最下位2ビットが“11”であることは、その整数 が次を満たすことを意味します。
この表現で (すなわち が正)ならば、4で割った余りは明らかに です。問題文の除算規定は「商を絶対値で小数点以下を切り捨てる(=0 方向に切り捨てる)」なので、正のときの余りは通常どおり の範囲で求まります。したがって選択肢の中では「ア: その整数値が正ならば3」が正解です。

解法ステップ

  1. 問:最下位2ビットが“11” → その整数を とおく。
  2. 下位2ビットが示す値は 。すなわち と表せる。
  3. の場合( が正)に4で割った余りは 。問題の商の取り方に注意して結論を確認する。
  4. が負)の場合、問題の商の定義(絶対値で小数点以下切り捨て)を適用すると余りは となり、選択肢のイ・ウ・エと矛盾する。

選択肢別の誤答解説

  • : その整数値が正ならば3 — 正解。下位2ビット“11”は を意味し、正の場合の余りは3になる。
  • イ: その整数値が負ならば-3 — 誤り。負で下位2ビットが“11”の例()を試すと、問題の商の取り方では余りは になる。
  • ウ: その整数値が負ならば3 — 誤り。負数であっても同値類としては に合同だが、商の取り方次第で質問の「余り」は符号付きで になり得るため不適。
  • エ: その整数値の正負にかかわらず0 — 誤り。下位2ビットが“00”の場合のみ余り0であるが、“11”では明らかに0ではない。

よくある誤解

  • 「2の補数の下位ビット=そのまま余り」という直感は正しいが、負数での余りの定義(符号)が問題となる点を見落とす。
  • 除算の商を「下方向(負の方向)へ切り捨てる(floor)」と解釈してしまうと、負の数の余りが異なる答えになりやすい。
  • 最下位ビットだけで符号を判断して「負なら−3」という誤った短絡をしがちである。

補足コラム

  • 2の補数表現と剰余:Nビット幅であっても、任意の整数 の下位 ビットは を与えます。したがって下位2ビットは を直接示します。
  • 余りの定義には注意:数学的な剰余(非負の余り)とプログラミングでの負数扱い、あるいは「商の切り方(floor, trunc)」で異なる結果になるため、問題文の規定を必ず確認してください。
  • 実例:(111)の下位2ビットは11 → で余り3。(…11111011)の下位2ビットも11 → だが商を問題文のように取ると余りは
簡単な Python 実験(商を「0方向に切り捨てる」場合):
def trunc_div_remainder(x, d):
    q = int(abs(x)/d) * (1 if x>=0 else -1)
    r = x - q*d
    return q, r

print(trunc_div_remainder(7,4))   # (1, 3)
print(trunc_div_remainder(-5,4))  # (-1, -1)

FAQ

Q. 「最下位ビットが11」は負を意味しませんか?
A. 下位2ビットだけでは符号はわかりません。符号は最上位ビット(符号ビット)で判定します。下位ビットは での剰余を示します。
Q. 商を floor(小さい方へ切り捨て)で取るとどうなりますか?
A. floor を採用すると負数の商が異なり、例えば を4で割ると floor なら商 , 余り になります。問題文の規定があるため、どちらを使うか注意が必要です。
Q. 幅(ビット数)が指定されていないときはどう解釈する?
A. 幅に依らず下位2ビットは を決めるため、余り議論は同じです。

関連キーワード: 2の補数、ビット、下位2ビット、剰余、余り、切り捨て、符号付き整数、モジュロ、除算の定義
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について