[記事公開日]2014/12/08
[最終更新日]2016/11/26

基本情報技術者試験 1-10(加算器)

 

 

加算器とは何か?

 

足し算をする装置のことです。

 

「半加算器」と「全加算器」があります。

 

それぞれの特徴を理解して、与えられた数字(入力)から答え(出力)が出せるようにしましょう。

 

コンピューター内では、いくつもの加算器が合わさって足し算をしています。

 

半加算器

 

 

そろばんと似てるかも!??

(やったことないけど汗)

 

●半加算器
コンピューターは「1」か「0」の値した取り扱わないと書きました。

 

ここに、2進数ビットの数字、「A」、「B」があるとします。

 

加算器によって足し算をすると、以下のような答えになります。

 

A:0 B:0 →結果:00

A:0 B:1 →結果:0

A:1 B:0 →結果:0

A:1 B:1 →結果:10

 

赤字で示したところが「答え=和」です。

 

「和」は試験では、

「S」: 和=「Summation」(SUM関数と一緒)

と表記されることがあります。加算器の問題では必ず「S」が出ると思ってよいでしょう。もちろん注釈にも書いてありますが、突然このような書き方をしてきても驚かないようにしておいてください。

 

2桁目の部分(十の位のところ)は”桁上がりがあるのか、ないのか”を示す数字になります。

 

1桁目を出力し、桁上がりの数字は次の加算器にパスします。

 

この桁上がりは、

「C」: 桁上がり=「Carry on」(キャリーオン)

といった書き方がされます。

 

「S」は1桁目のことを言っていて、「C」は桁上がりの数値のことを言っています。

 

<おさらい>

A:1+B:1 ⇒ 結果:1 0

「桁上がり1、和0」と答える。

 

半加算器は・・、

・1桁(1ビット)同士の加算しかできません。

・1桁目を「和」として出力します。

・2桁目を「桁上がり」として出力します。もし、桁上がりが「1」ならば、次の加算器へ”桁上がりがあるぞー”という意味で「1」をパスします。

 

・結果は・・、

1ビット目:「排他的論理和(XOR)

※片方のみ「1」なら「1」を返す

 

2ビット目:「論理積(AND)

※どっちも「1」なら「1」を返す

 

になります。

 

A:0 B:0 →結果:00

A:0 B:1 →結果:01

A:1 B:0 →結果:01

A:1 B:1 →結果:0

 

※4パターンしかありませんね。

 

ここでは、「1ビット目は排他的論理和、2ビット目は論理積」というのは必ずしも覚えなくてよいです。というのも、出力された結果を見て”どれだっけなぁ”と思い出せればOKです。出題される内容になりますので、ここで確認しておいてください。

 

 

 

●全加算器

・1つの全加算器は、2つの半加算器と、1つのORゲートから構成されています。下の図のようにこの装置全体で「全加算器1個」を構成していると思ってください。(実際にそうですが)

 

全加算器

 

・そして、よーく見ると、「A」と「B」と「X」の入力があります。そして、「S」と「C」の出力があります。半加算器では入力2に対して、出力も2でした。全加算器では、入力が「3」あります。出力は「2」です。結局のところ、全加算器も1桁目を自身の「和」として出力し、2桁目を「桁上がり」として出力します。

 

・「A」と「B」の桁上がりを考慮しながら、「Z」の値を半加算器で扱ってくださいね、というだけです。

 

※ちなみに、出力したい桁数(ビット数)=全加算器の数となります。←試験的には覚える必要なし!!

 

「A」と「B」と「X」を加算器で足し算するとこう以下のようになります。

 

※「C」・・・桁上がり、「S」・・・和

 

全加算器

 

★加算器1回目

A:0 B:0 →C「0」、S「0」

A:0 B:1 →C「0」、S「1」

A:1 B:0 →C「0」、S「1」

A:1 B:1 →C「1」、S「0」

でしたね。

 

★加算器2回目

※C1・・・A+Bの桁上がり

※C2・・・A+B+Cの桁上がり

 

A:0 B:0 X:0 →C1「0」、C2「0」、S「0」

A:0 B:0 X:1 →C1「0」、C2「0」、S「1」

A:0 B:1 X:0 →C1「0」、C2「0」、S「1」

A:0 B:1 X:1 →C1「0」、C2「1」、S「0」

⇒1個目の加算器から「1」が入力されました。2個目の加算器ではそこに「X」の「1」が足されますので、全加算器としての出力はSが「0」、Cが「1」となります。

 

全加算器

 

A:1 B:0 X:0 →C1「0」、C2「0」、S「1」

A:1 B:1 X:0 →C1「1」、C2「1」、S「0」

⇒上の図を見てみましょう。A+Bの和(S=0)と、Xの値が全加算器としての「和」(S)となります。「A1+B1」の和は0となりますから、Xも0なら、全加算器としても和も0になります。

 

A:1 B:0 X:1 →C1「0」、C2「1」、S「0」

A:1 B:1 X:1 →C1「1」、C2「1」、S「1」

⇒A1とB1を足すと「1 0」になります。C1は「1」になります。「A+B+X」をしても「1 1」になるので、C2も「1」になります。Sは1個目の加算器の和(1桁目)とXの足し算ですので、S0+X1は0となります。

 

以上です。

 

 

yamatunes