補数と負の数
学習目標
- nビットで負の数を2進数で表す方法(補数)を説明できる。
- 補数を使うと、引き算を足し算として計算できることを確かめられる。
| 学習の作業 | 時間の目安 |
|---|---|
| 読む(補数の定義、表せる範囲) | 15分 |
| 例題を追う(−3 の作り方、引き算の足し算化) | 10分 |
| 自力演習(段階別の練習) | 15分 |
| 振り返り(確認問題) | 5分 |
1. 補数とは
nビットの2進数で、ある数と足して 2n(ちょうど桁あふれする値)になる数を補数といいます。実際には「各桁を反転して1を足す」と求められます。
例: 3(10) を8ビットで表すと 0000 0011。−3 は 1111 1101 になります(反転すると 1111 1100、1を足すと 1111 1101)。
2. 表せる範囲
nビットの補数表現では、−2n−1 以上 2n−1−1 以下の整数を表せます。8ビットなら −128〜127 です。
例題: −3 を4ビットで表す
- 3 を4ビットで書く: 0011
- 各桁を反転する: 1100
- 1を足す: 1100 + 1 = 1101
- 答え: 1101(2) = −3(図1 の表と一致する)
確認: 1101(2) に 0011(2) を足すと 1 0000(2)。桁あふれした1を捨てると 0000 になり、−3 + 3 = 0 と合う。
3. 引き算を足し算で行う
5 − 3 は、−3 の補数 1111 1101 を使って 0000 0101 + 1111 1101 = 1 0000 0010 となります。桁あふれした1を捨てると、0000 0010 = 2 です。
注意
補数を計算するときは、必ず同じビット数(桁数)をそろえてください。桁数が違うと、正しい結果になりません。
補数を計算するときは、必ず同じビット数(桁数)をそろえてください。桁数が違うと、正しい結果になりません。
4. 操作
整数と桁数を入力し、「変換」を押してください。範囲外の数を入れると警告が出ます。
段階別の練習
自力演習(15分): 補数の作り方と、引き算を足し算に変える練習です。
易(基本の確認)
- 4ビットの 0101 は何の10進数か(補数表現ではなく2進数として)。
答えと解き方
0101(2) = 5。 - 4ビットで −1 を2進数で表しなさい。
答えと解き方
1 を 0001 にして反転 1110、1を足して 1111(2)。
標準(手順を組み合わせる)
- 8ビットで −10 を2進数で表しなさい。
答えと解き方
10 = 0000 1010、反転 1111 0101、1を足して 1111 0110(2)。 - 4ビットの 1001(2) は補数表現で何の10進数か。
答えと解き方
1001 を1引いて 1000、反転して 0111 = 7。よって −7。
共通テスト形式(読み取りと判断)
- 4ビットの補数で 3 − 6 を計算し、結果を10進数で答えなさい。
答えと解き方
3 = 0011、−6 = 1010(6 = 0110、反転 1001、+1 で 1010)。0011 + 1010 = 1101(2)。補数表現で 1101 は −3。確認: 3 − 6 = −3。 - 8ビットで表せる数の範囲はいくらからいくらまでか。
答えと解き方
−27 = −128 から 27 − 1 = 127 まで。範囲外の値は、正しく表せない(桁あふれ)。
振り返り
- 「反転して1を足す」と補数が求まる理由を、足して桁あふれする値(2n)から説明できますか。
- 4ビットで表せる数の範囲(−8〜7)を、先頭の桁から説明できますか。