2学期【中間考査】の解答を発表します! 基数変換やゲート回路の設計をテーマにした問題の数々、皆さんはいくつ解けましたか?
前回行った2学期【中間考査】では、“基数変換”や“ゲート回路の設計”の問題を中心に出題しました。いかがでしたでしょうか?
解けた方も解けなかった方も、次項の解答と解説をぜひ読んでみてください。
仮に解けなかった問題があったとしても、今回の解説や過去問題を参考にして、1問1問確実に理解しながら解いていけば、必ずやその知識が身に付くはずです。
それでは、解答を発表します!
答え.
10進数 | 2進数 | 16進数 | |
100 | 1100100 | 64 | |
50 | 110010 | 32 | |
250 | 11111010 | FA | |
10進数と2進数の変換については、【問題1】の解説を参考にすれば解ける問題です。ここでは、連載で触れていなかった「16進数(Hexadecimal Number)」について解説します。
16進数とは、
数をいいます。
16進数による数の表記には16種類の文字が必要なので、「0」から「1」の数字に加え、「A」から「F」までの英字を用います。ここで「A」は10を表し、「B」は11を表し……、「F」は15を表しています。
そして、16進数のけたの重さは1(160)の位、16(161)の位、256(162)の位……のように、1つけたが上がるたびに16倍になります。
つまり、16進数の「FA」を10進数に変換するには、図1のようにけたの重みを考えて、
15 × 16 + 10 × 1 = 240 + 10 = 250
と求めます。
続いて、16進数と2進数との関係ですが、
します。
つまり、2進数「1100100」を16進数に変換するには、図2のように2進数を4けたずつ分けて行います。
一方、16進数「FA」を2進数に変換する場合は、図3のように16進数の各けたを、4けたの2進数に置き換えて行います。
このように、16進数でビットを表現すると非常にコンパクトになります。
これら3つの問題については【問題6】の解説を参考にすれば、論理式から回路を導き出せます。しかしながら、同じ機能であってもさまざまな回路が考えられますので、ここでは“より最適な回路”について考えてみましょう。
(2)の解答を見てください。これは論理式をそのままゲートに置き換えたものですが、この論理式を、
X = A + B ( C + D ) = A + B ・ C + B ・ D
と変形することで、図4のようにさらに応答のよい回路が実現できます(参考【問題9】の解説)。
同じく(3)の解答ですが、こちらの論理式は、
X = A ( B + C ) + A ・ B = A ・ B + A ・ C + A ・ B = A ・ B + A ・ C
と簡単化できます。これにより、少ないゲートで回路を実現できます(参考【問題9】の解説)。
第3問は、真理値表から回路を求める問題です。はじめに、真理値表から論理式を求め、そこからゲート回路を作成していきます。【問題7】の解説のとおり、「真理値表の出力が“1”となる行の基本積を求め、それらの論理和を取る」方法を利用します。
この方法により求められる「3‐8デコーダ」の論理式は以下のとおりです。
後は、これらを基にゲート回路を描けば答えが導き出せます。
ここでは解答例として、【問題8】の解説で紹介した「HA(Half Adder:半加算器)」を8個並べて実現してみました。
【問題3】の解説のとおり、ある2進数の補数は「各ビットを反転(否定)し、1を加える」ことで求められます。そこで、HAの入力Aに各けたのビットを反転したものを加え、HAの入力Bにより1を加算するためのキャリーCを伝達させています。
前述しましたが、デジタル回路を作る際、その解答は必ずしも1つとは限りません。同じ機能であっても、応答性、回路規模、電気特性などさまざまな検討を要することがあります。1つの問題の解答に、いくつかのバリエーションを発見することもデジタル回路ならではの面白さだと筆者は思います。ご興味があればぜひチャレンジしてみてください。
以上で、2学期の中間考査の解答と解説は終了です。お疲れさまでした。
最後に、次回までの宿題を掲載します。
Copyright © ITmedia, Inc. All Rights Reserved.