1. 概要
コンピューターはバイナリーで考えます:オンオフ、はい-いいえ、真-偽。 しかし、コンピューターはどのようにして電気を算術に変換するのでしょうか?
このチュートリアルでは、2の補数と呼ばれる手法を使用してコンピューターが2進数を減算する方法を学習します。
2. バイナリ加算
2の補数に到達する前に、基数10と基数2で加算がどのように機能するかについての記憶をすばやく更新しましょう。
私たちは学校で10進数について学びます。 もちろん、それは私たちが毎日使用している記数法です。
基数10に1から9を追加すると、左側に新しい「1」が付いた数値が得られます:10。 +
また、2つの数値を加算すると、9より大きい合計が次の列に表示されます。
10^2 | 10^1 | 10^0 |
2 | 4 | 5 |
+ | 5 | |
——————— | ||
---|---|---|
2 | 5 | 0 |
バイナリまたはベース2では、各プレースホルダーは2の倍数です。 したがって、バイナリの同じ方程式は次のようになります。
2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 |
1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
+ | 1 | 0 | 1 | ||||
———————————————— | |||||||
1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
まだ持ち運びが必要であり、コンピューターにはそのケースを処理するための特別な回路が付属していることに再度注意してください。
3. バイナリ減算
しかし、減算はどうですか? 減算では、運ぶ代わりに借ります:
2^7 | 2^6 | 2^5 | 2^4 | 2^3 | 2^2 | 2^1 | 2^0 | ||
1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | (250) | |
– | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | –(245) |
———————————————————- | |||||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | =(5) |
また、コンピューターもその回路を追加できますが、より効果的な方法があります。
基本的に、2つの数値を減算する場合は、2番目の数値を負の値に変換してから、2つの数値を加算することができます。
回路をさらに節約するために、コンピューターは2の補数と呼ばれる手法でこれを行います。
4. 2の補数
2の補数を作成するには、1と0を逆にしてから、1を加算します。
上記の例の場合:
0 0 0 0 0 1 0 1
最初にそれを否定します:
1 1 1 1 1 0 1 0
そして、1を追加します。
1 1 1 1 1 0 1 1
では、これをどのように使用しますか? さて、後の算術で、減算は負の数を加算することと同じであることを学びました。 ここでも同じことが起こります。
1 1 1 1 1 0 1 0 (250)
+ 1 1 1 1 1 0 1 1 +(-5)
-----------------
1 1 1 1 0 1 0 1 (245)
これが単なる紙とペンの問題である場合、はい、「1」が含まれるもう1つの列があります。 しかし、コンピュータ回路は16進数です。
そして、この例では、2 ^ 8の位置に表示される1がちょうど落ちるので、2の補数が巧妙な最適化になります。
5. 結論
この短い記事では、コンピューターが加算と減算の2つの仕事をする1セットの回路(加算器)を持つことを可能にする2の補数の概念について説明しました。