戻る   2 進数の減算  (binary subtraction)



2 進数の減算も 加算 と同じで、 減算の組合せは次の 4 種類です。

A   B   D
000
011 (borrow)
101
110

2 行目の 0 − 1 = 1 が異様に見えるかもしれませんが、 0 から 1 は引けないので、 上位の桁からの桁借り (borrow) を前提に計算しています。
10 進数でも同じことで、 1000 円札で 55 円 の買い物をしたときのお釣りは


と計算します。 はじめに 0 − 5 を計算しなくてはなりませんが、 やはり 0 から 5 は引けないので、 上位桁から桁借りをして 5 になっています。 桁借りされた上位桁には 10 円貸して 90 円が残っています。

2 進数でも同じこと、 (2 進数の) 「 1000 円 」 で 「 11 円 」 の買い物をしたときのお釣りは



です。
10進数なら何でもないことも、 2 進数だと腑に落ちないかも知れません。
多分誰も、 2 進数の 「 1000 円 」 で 「 11 円 」 の買い物を したことがないからでしょう





下には 8 桁の 2 進数、 A, B が表示されています。
最下位の桁が赤く表示されていますが、 ボタンをクリックするとこの桁の引き算が実行されます。 結果は右の 2 進数の減算規則の、赤く表示されている行の通りになって D の行に表示されます。
桁借り (Borrow) が発生すると 見かけ上 被減数 A が変わって分かりにくくなるので、 いちばん上の A の行には 被減数の初期値が表示されています。



ボタンで、一桁ずつ戻ることができます。
ボタンで最初の状態に戻ります。
テキストフィールド A、 B に数値を入力すると、任意の値 (1 〜 255) の減算ができます。
(差が負になる減算はできません)
2進数でも 10進数でも入力できます。 チェックボックス BIN、 DEC で選択して下さい。






長い桁借りができると減算は少しややこしくなりますが、 補数を加える ことによって減算をすることもできます。
上図の ボタンをクリックして "加算" のモードにし、 ボタンをクリックすると、 被減数が 2 の補数に変わります。
この状態で ボタンをクリックしていくと、 2 の補数になった被減数が加算されていきますが、 計算が終わったあと和の最上位桁を無視すると、 減算と全く同じ結果になります。 なぜそうなるのかということは、 補数 のページをご覧いただくといいかと思います。