1.加算回路と減算回路



1.加算回路と減算回路
 (かさん かいろ と げんざん かいろ)


1.1 加算の真理値表
1.2 加算回路
1.3 減算(引き算)の考え方
1.4 2の補数(ほすう)
1.5 2の補数回路
1.6 減算回路


1.1 加算の真理値表



2進数1桁の足し算では、すべての組み合わせは4とおりです。

足した結果には、1桁目の値と、桁上がりの値が必要です。

これを表にしてみましょう。

表1-1  2進数1桁の加算

A B 1桁目 桁上がり
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1



1桁目と桁上がりを論理式で表現できないかを考えてみましょう。

AND、OR、NOTなどを使って、整理したものが表1-2です。


表1-2  加算を論理式で表現

A B C = A and B D = A or B E = not C F = D and E
0 0 0 0 1 0
0 1 0 1 1 1
1 0 0 1 1 1
1 1 1 1 0 0
(桁上がり) (一桁目)



一桁目の部分は、A=Bのとき0、 A≠1のとき1となっています。

この演算を
排他的論理和「EXOR(Exclusive OR)」とも呼び、

等しくないことを示す演算子でもあります。



1.2 加算回路



表1-2から、1ビットの加算回路は次のようになることがわかるでしょう。

     
          図1-1 1ビット加算器


1ビット以上になると、最下位ビット以外は、

下位からの桁上がりを更に加算しなければなりません。

だから、図1-2のように1ビット加算器が並ぶことになります。

(注意) 一般にNビットの加算では、N×(N+1)/2個の
      1ビット加算器が必要となります。
      図1-2では、Aの各ビットをAn、Bの各ビットをBn、
      結果をCnと表記しています(n=0〜3)。

    
            図1-2 4ビット加算器



1.3 減算(引き算)の考え方



10進数の世界で、私たちが引き算を行うとき、下位の桁から順にやります。

桁ごとに、順に大きさを比較し、引かれる数が引く数より大きければ、

そのまま引き、引かれる数が小さければ、上位桁から10借りてきて・・・。

@) 1の位では2<8だから、10の位から10借りてくる。
A) 10+2から8を引いて4を1位の値とする。
B) 下位から10を借りられたので、7−1=6とする。
C) 6−1=5を10の位とする。



さて、いかにも複雑ですね。と思う人は少ないでしょうか?


ここでちょっと視点を変えてみます。

今、上位桁から借りてくるのを最初にやってしまいましょう。


まず、100から18を引きます。

答えは82。


この計算は、つり銭の計算でよくやりますから、なれていますね。

この82に72を加えます。

    72+82=154

最初,100を借りていたのですから、100を引いて54となります。


    154−100=54


答えは、同じく54になりました。


あるいは、2桁の大きい正の値から、

2桁の小さい正の値を引いたのですから、

2桁以上を無視すればよいわけです。



1.4 補数(ほすう)


10進法で、計算の対象となっている数より大きい桁を持ち、

最上位が1で後は0の値、1.3の例で言えば100のことですが、

この値から数を引いた値を
10の補数と呼びます。

たとえば、18の10の補数は82です。


同様に2進法で、計算の対象となっている数より大きい桁を持ち、

最上位が1で後は0の値から、数を引いた値を
2の補数と呼びます。


2進数では0か1しかありませんから、

実は、この値を簡単に求めることができます。

まず、単純に引いて2の補数を求めた値と、

引く数の各桁のビットを反転した値を比較してみましょう。

[単純に引いた値] 1 0000 0000 − 0000 1101  = 1111 0011
[ビットを反転した値]  0000 1101 の各ビット反転 = 1111 0010
[単純に引いた値] 1 0000 0000 ? 0000 1010 = 1111 0110
[ビットを反転した値] 0000 1010 の各ビット反転 = 1111 0101
[単純に引いた値] 1 0000 0000 ? 0000 0001 = 1111 1111
[ビットを反転した値] 0000 0001 の各ビット反転 = 1111 1110


各桁のビットを反転した値は、

単純に引いた値より1だけ少ない値になっています。

ですから、ビット反転した値に1を加えて補数をつくることができるわけです。



1.5 2の補数回路




ビットの反転はNOTだけの回路です。

    
        図1-3 ビット反転(8ビットのとき)


ビットを反転したあと、1を加算します。

この1の値としては、最下位ビットのみ1、

それ以外は0として加算器に入力すればよいわけです。


    
        図1-4 2の補数回路(8ビットのとき)

補数回路では、A0〜A7の全ビットが 0 のとき、あふれビットが発生します。



1.6 減算回路



さて、引く値の2の補数をとり、引かれる値と加算し、

あふれビットを無視すれば、結果的に減算が行われたことになります。

    
          図1-5 8ビットにおける減算回路




第1編 コンピュータの原理

1. コンピュータは計算機

2.コンピュータに必要な機能

第2編 論理回路の話

1.豆電球による論理回路

2.スイッチによる論理回路

3.論理回路図の単純化

第3編 コンピュータの回路

1.加算回路と減算回路

2.記憶回路

3.順序回路


途中から,はじめるには
上の下線部をクリックします。