解説
コンピュータが数を足せるのは、足し算が論理演算の組み合わせで作れるからです。その最も基本的な部品が「半加算器(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 なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。