#30

半加算器(XORとANDで足し算を作る)

1桁の2進数の足し算を、和=XOR・桁上がり=ANDで作ります。

解説

コンピュータが数を足せるのは、足し算が論理演算の組み合わせで作れるからです。その最も基本的な部品が「半加算器(half adder)」です。 1桁の2進数 a, b を足すと、結果は「和」と「桁上がり(carry)」の2つ。表を作ると、和は a と b が異なるとき1=XOR、桁上がりは両方1のとき1=AND になっています。 たった2つの演算で 1+1=10(2進数) という足し算が完成します。これを並べると何桁でも足せる回路になり、CPUの計算の正体が見えてきます。

書き方

半加算器: 1桁の足し算を 和 = a ^ b(XOR)、桁上がり = a & b(AND)で作る。
・def half_adder(a, b): で和と桁上がりの2値を return s, carry のように複数返す。
・for a in (0, 1): の二重ループで真理値表を作る。
・str(数値) で文字列化し + で連結(桁上がりと和を並べて表示)。

書いて動かす

この回の課題

和=XOR・桁上がり=AND で半加算器の関数を作り、真理値表を表示し、1+1 が2進数の10になることを確かめよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。