|
|
2進数の減算 (binary subtraction) |
2 進数の減算も、 加算 と同じで、 組合せは次の 4 種類です。
| A | B | D | ||
|---|---|---|---|---|
| 0 | − | 0 | = | 0 |
| 0 | − | 1 | = | 1 (borrow) |
| 1 | − | 0 | = | 1 |
| 1 | − | 1 | = | 0 |
2 行目の 0 − 1 = 1 が異様に見えるかもしれませんが、
これは桁借り (borrow) を前提にしています。
10進数でも同じことで、 1000円札で 55円 の買い物をしたとき、 お釣りは
と計算します。
はじめに 0 − 5 を計算しなくてはなりませんが、 桁借りをした結果、 5 になっています。
2 進数でも同じことで、 (2 進数の)
「 1 0 0 0 円 」 で 「 1 1 円 」 の買い物をしたときのお釣りは
です。
10進数なら何でもないことも、 2 進数ではやはり腑に落ちないかも知れません。
多分、 誰も、 2 進数の 「 1 0 0 0 円 」 で 「 1 1 円 」 の買い物を
したことがないからでしょう
。
下図には 8 桁の 2 進数、 A, B が表示されています。
最下位の桁が赤く表示されていますが、 いまこの減算を実行すると、
結果は右の 2 進数の減算規則の、赤く表示されている行の通りになります。
右下の
ボタンをクリックして下さい。
一桁分の計算が実行されて、
差が D の行に表示されます。
桁借り (Borrow) が発生すると
見かけ上 被減数 A が変わって分かりにくくなるので、
いちばん上の A の行には 被減数の初期値が表示されています。
ボタンで、一桁ずつ戻ることができます。
ボタンで最初の状態に戻ります。
テキストフィールド A、 B に数値を入力すると、任意の値 (1 〜 255) の減算ができます。
(差が負になる減算はできません)
2進数でも 10進数でも入力できます。
チェックボックス BIN、 DEC で選択して下さい。
減算は桁借りが出ると少しややこしい場合がありますが、
補数を加える ことによって減算をすることもできます。
上図の
ボタンをクリックして "加算" のモードにし、
ボタンをクリックすると、 被減数が 2 の補数に変わります。
この状態で
ボタンをクリックしていくと、
2 の補数になった被減数が加算されていきますが、 全桁を加算して、 和の最上位桁を無視すると、
減算と全く同じ結果を得ることができます。