最終更新日:2026年10月5日
fe fe-technology basic-theory programming
まず結論
2進数の下位 n ビットは、そのビット列を符号なし整数として読むと、元のビット列が表す整数の 2^n を法とする値を示します。
例えば下位2ビットが 11 なら、4を基準に見た値は3です。
ただし、FEの問題で「4で割った余り」を求めるときは、負数の除算で商をどう丸めるかまで確認する必要があります。
- 正の整数で下位2ビットが
11→ 4で割った余りは 3 - 負の整数で下位2ビットが
11→ 商を0方向へ切り捨てるなら余りは -1
下位ビットだけで「余りは必ず3」と決めない。負数では商の丸め方を確認する。
直感的な説明
2進数で4は 100₂ です。
4の倍数は下位2ビットが 00 になるので、正の整数なら下位2ビットを見るだけで4で割った余りが分かります。
11 = 4 × 2 + 3
↑
余り
一般化すると、下位 n ビットは 2^n ごとに繰り返す部分です。
下位1ビットを見る → 2を基準に考える
下位2ビットを見る → 4を基準に考える
下位3ビットを見る → 8を基準に考える
ここまでは正数なら素直です。
難しいのは、2の補数で表された負数です。
定義・仕組み
2の補数とは
2の補数は、固定ビット長の2進数で負数を表す代表的な方法です。
例えば8ビットで -5 を表すときは、
5 00000101
ビット反転 11111010
1を加える 11111011
したがって、
-5 → 11111011₂
となります。
下位2ビットが11の負数を考える
-5 の下位2ビットは 11 です。
11111011
^^
11
ここで 11₂ = 3 だからといって、FEの除算条件を確認せずに「余りは3」と決めるのは危険です。
商を絶対値の小数点以下を切り捨てる、つまり0方向へ丸めるとします。
-5 ÷ 4 = -1.25
商 = -1
整数の除算では、
割られる数 = 除数 × 商 + 余り
なので、
-5 = 4 × (-1) + (-1)
余りは -1 です。
なぜ下位2ビットは11なのに余りが-1なのか
-5 は次のようにも書けます。
-5 = 4 × (-2) + 3
このときの3は、-5 を4を法として見たときの非負の代表値です。
一方、商を0方向へ切り捨てる除算では、
-5 = 4 × (-1) - 1
となります。
つまり、「下位ビットが表す非負の値」と「指定された整数除算の余り」は、負数では一致しないことがあります。
11₂ → 4を法とする値は3
-5 ÷ 4 → 商 -1、余り -1
科目Aでどう出る?
科目Aでは、2の補数・下位ビット・2のべき乗による除算を組み合わせて判断させる形に注意します。
正数なら下位ビットをそのまま使いやすい
下位2ビットが 11 の正数を考えます。
| 10進数 | 2進数 | 4で割った余り |
|---|---|---|
| 7 | 111 | 3 |
| 11 | 1011 | 3 |
| 23 | 10111 | 3 |
正数では、下位2ビット 11₂ = 3 がそのまま余り3になります。
負数では除算条件を見る
8ビットの2の補数表現では、
-5 → 11111011
-9 → 11110111
-13 → 11110011
いずれも下位2ビットは 11 です。
商を0方向へ切り捨てるなら、
-5 = 4 × (-1) - 1
-9 = 4 × (-2) - 1
-13 = 4 × (-3) - 1
となるので、余りは -1 です。
試験では次の順番で判断すると安全です。
1. 何ビットを見るか確認
2. 対応する 2^n を考える
3. 正数か負数か確認
4. 負数なら商の丸め方を確認
5. a = bq + r で余りを確定
科目Bでどう使う?
科目Bでは、整数の下位ビットを使って条件判定する処理を読むときに役立ちます。
例えば、整数 x の下位2ビットだけを取り出すビットマスクは、
x AND 0011
です。
この結果は 00 ~ 11、つまり0~3になります。
下位2ビット 00 → 0
下位2ビット 01 → 1
下位2ビット 10 → 2
下位2ビット 11 → 3
ここで重要なのは、ビットマスクで得た0~3の値と、負数を整数除算したときの余りを同じものだと思わないことです。
疑似言語で除算や剰余の規則が示されている場合は、その規則を優先してトレースします。
よくある誤解・混同
誤解1:下位2ビットが11なら、余りは必ず3
正数ならその判断でよい場合が多いですが、負数では除算の定義によって変わります。
下位2ビット = 11
↓
4を法とする非負の値 = 3
しかし
-5 ÷ 4
商を0方向へ丸める
↓
余り = -1
「下位ビット」と「符号付き整数除算の余り」を区別するのがポイントです。
誤解2:2の補数は「ビット反転」だけ
2の補数で負数を作る基本手順は、
絶対値を2進数にする
↓
全ビットを反転
↓
1を加える
です。
「反転して終わり」は1の補数です。
誤解3:負数の余りはいつも負になる
そうとは限りません。
余りの定義は、商の丸め方や言語・仕様によって異なります。問題文に除算規則が示されている場合は、その規則に従います。
FEでは、問題文にある除算・剰余の定義を読み飛ばさないことが重要です。
まとめ(試験直前用)
- 下位 n ビットは、整数を 2^n を基準に見た情報を持つ
- 下位2ビットが
11なら、4を法とする非負の値は 3 - 正数なら、4で割った余りを 3 と判断しやすい
- 負数では、商の丸め方を確認してから余りを決める
- 0方向へ商を切り捨てる場合、下位2ビットが
11の負数の余りは -1
公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。