// google adsence用 情報処理の学習帳 | 電気主任技術者のいろは

情報処理の学習帳

2022年3月24日

算術演算

2進数と16進数表現

10進数と2進数及び16進数の対応は以下のようになる。

\(\small{\begin{array}{cccc}
10進数&2進数&16進数&2進数が表す10進数値\\
\hline 0&0000&0&0\times2^3+0\times2^2+0\times2^1+0\times2^0\\
\hline 1&0001&1&0\times2^3+0\times2^2+0\times2^1+1\times2^0\\
\hline 2&0010&2&0\times2^3+0\times2^2+1\times2^1+0\times2^0\\
\hline 3&0011&3&0\times2^3+0\times2^2+1\times2^1+1\times2^0\\
\hline 4&0100&4&0\times2^3+1\times2^2+0\times2^1+0\times2^0\\
\hline 5&0101&5&0\times2^3+1\times2^2+0\times2^1+1\times2^0\\
\hline 6&0110&6&0\times2^3+1\times2^2+1\times2^1+0\times2^0\\
\hline 7&0111&7&0\times2^3+1\times2^2+1\times2^1+1\times2^0\\
\hline 8&1000&8&1\times2^3+0\times2^2+0\times2^1+0\times2^0\\
\hline 9&1001&9&1\times2^3+0\times2^2+0\times2^1+1\times2^0\\
\hline 10&1010&A&1\times2^3+0\times2^2+1\times2^1+0\times2^0\\
\hline 11&1011&B&1\times2^3+0\times2^2+1\times2^1+1\times2^0\\
\hline 12&1100&C&1\times2^3+1\times2^2+0\times2^1+0\times2^0\\
\hline 13&1101&D&1\times2^3+1\times2^2+0\times2^1+1\times2^0\\
\hline 14&1110&E&1\times2^3+1\times2^2+1\times2^1+0\times2^0\\
\hline 15&1111&F&1\times2^3+1\times2^2+1\times2^1+1\times2^0\\
\hline\end{array}}\)

2進数の4ビットごとに16進数の桁上がりとなることから、2進数を16進数に変換するには、2進数4ビットごとに区切って16進数に変換すればよい。

<例>
2進数の(111011)2を変換すると、
以下のように16進数の(3B)16になる。

\(\small{\begin{array}{cccc}
&&&計算方法\\
\hline 2進数&0011&1011&4ビットで区切る\\
\hline 10進数(過程)&3&11&各区切りの10進数値\\
\hline 16進数&3&B&各区切りの16進数値\\
\hline\end{array}}\)

過去問題:
電験3種過去問【2021年機械 問14】(2,10,16進数表現)

 

フリップフロップ回路

コンピュータ内の処理では、入力の順序に依存して出力が決まる必要がある。入力の順序を記憶しておくための回路を一般に順序回路と呼ぶ。順序回路の記憶を行うのがフリップフロップ回路である。これらはカウンタ回路やレジスタ回路などとして用いられる。

RSフリップフロップ回路

RSフリップフロップ回路においては、入力RとSがそれぞれ1と0の場合に0(リセット)を、入力RとSがそれぞれ0と1の場合に1(セット)を出力する。入力RとSが共に0では出力状態を保持し、入力RとSを共に1とすることは禁止されている。

\(\small{\begin{array}{|cc|c|c|}
\hline 入力&&出力&状態\\
S^n&R^n&Q^{n+1}&\\
\hline 0&0&Q^{n}&記憶\\
\hline 0&1&0&リセット\\
\hline 1&0&1&セット\\
\hline 1&1&禁止&禁止\\
\hline\end{array}}\)

JKフリップフロップ回路

JKフリップフロップ回路は、RSフリップフロップ回路のS=J、R=Kとしたもので、J=K=1(RSフリップフロップでは禁止)の場合に、フリップフロップの出力を反転するようにしたもの。この回路は最もよく使われている。

入力JとKがそれぞれ1と0の場合に1(セット)を、入力JとKがそれぞれ0と1の場合に0(リセット)を出力し、入力JとKが共に0では出力状態を保持し、入力JとKを共に1では出力を反転する。

\(\small{\begin{array}{|cc|c|c|}
\hline 入力&&出力&状態\\
J&K&Q^{n+1}&\\
\hline 0&0&Q^n&記憶\\
\hline 0&1&0&リセット\\
\hline 1&0&1&セット\\
\hline 1&1&\bar{Q^n}&反転\\
\hline\end{array}}\)

Dフリップフロップ回路

RSフリップフロップ回路にR=S=1が禁止されている。D(Deley)フリップフロップ回路は、D=1ではS=1,R=0(セット)を、D=0ではS=0,R=1(リセット)をRSフリップフロップ回路へ入力するようにしたもの。

Dフリップフロップ回路は、入力Dの状態を1クロック遅れ(Delay)させている。

\(\small{\begin{array}{|cc|c|c|}
\hline 入力&&出力&状態\\
D^n&Q^n&Q^{n+1}&\\
\hline 0&0&0&リセット\\
\hline 0&1&0&リセット\\
\hline 1&0&1&セット\\
\hline 1&1&1&セット\\
\hline\end{array}}\)

\(\small{\begin{array}{|c|c|}
\hline 入力&出力\\
D^n&Q^{n+1}\\
\hline 0&0\\
\hline 1&1\\
\hline\end{array}}\)

Tフリップフロップ回路

T(Toggles:トグル)フリップフロップ回路は、入力T=1のとき出力Qの状態を切り替える(トグル)機能がある。T=0ではQの状態は変化しない。

TフリップフロップはJKフリップフロップから容易につくることができるため、TフリップフロップのICはない。

\(\small{\begin{array}{|cc|c|c|}
\hline 入力&&出力&状態\\
T&Q^n&Q^{n+1}&\\
\hline 0&0&0&記憶\\
\hline 0&1&1&記憶\\
\hline 1&0&1&反転\\
\hline 1&1&0&反転\\
\hline\end{array}}\)

\(\small{\begin{array}{|c|c|}
\hline 入力&出力\\
T&Q^{n+1}\\
\hline 0&Q^n\\
\hline 1&\bar{Q^n}\\
\hline\end{array}}\)

Tフリップフロップ回路は多段結合して、カウンタなどの用途に使用される。

以下に16進カウンタの例を示す。

クロックパルスCの立下りで、Q1は状態変化する。また、Q1の立下りでQ2も状態変化する。 これを繰り返し動作することで、Q1はCの2倍の周期、Q2はQ1の2倍の周期、Q3はQ2の2倍の周期、Q4はQ3の2倍の周期となる。

Q1、Q2、Q3、Q4の組合せを、クロックパルスごとに0~15までカウントするカウンタとして用いることができる。

\(\small{\begin{array}{|cccc|c|}
\hline Q_4&Q_3&Q_2&Q_1&10進数\\
\hline 0&0&0&0&0\\
\hline 0&0&0&1&1\\
\hline 0&0&1&0&2\\
\hline 0&0&1&1&3\\
\hline 0&1&0&0&4\\
\hline 0&1&0&1&5\\
\hline 0&1&1&0&6\\
\hline 0&1&1&1&7\\
\hline 1&0&0&0&8\\
\hline 1&0&0&1&9\\
\hline 1&0&1&0&10\\
\hline 1&0&1&1&11\\
\hline 1&1&0&0&12\\
\hline 1&1&0&1&13\\
\hline 1&1&1&0&14\\
\hline 1&1&1&1&15\\
\hline 0&0&1&1&3\\\hline\end{array}}\)

過去問題:
電験3種過去問【2021年機械 問18】(フリップフロップ回路の知識)

A/Dコンバータ

標本化と量子化

アナログ信号をコンピュータで利用するには、A-D変換によりディジタル信号に変換する必要がある。
連続したアナログ信号を適当な時間間隔で区切り、断続的な信号とすることを標本化という。標本化定理によると、入力信号を完全に復元するためには、その入力信号に含まれる最高周波数成分の2倍を超えたサンプリングレートとすればよい。
標本化されたアナログ値を飛び飛びの不連続な値で表すことを量子化という。量子化の段階数が増え、量子化の単位が小さくなるほど、量子化誤差は小さくなる。
A-D変換器には主に次のような方式がある。

積分形

積分形には、入力信号を一定時間積分し、この積分結果と一定の基準信号を積分した値が等しくなる時間を計測し、この計測値から変換結果を得る方式がある。サンプリングレートは低いが、高精度でノイズに強い方式である。

逐次比較形

逐次比較形には、入力信号と内部のD-A変換器の出力を2分検索で比較していき、ディジタル値に変換する方式がある。nビットの変換には、MSB側からn回の比較が必要なため、中程度のサンプリングレートとなる。変換精度を得るために、サンプリングホールド回路により、標本化される信号レベルが変換終了まで変動しないようにする場合がある。

並列形

並列形はフラッシュ形とも称され、nビットの変換には(2n-1)個の基準電圧と比較器を準備し、入力信号をそれらで同時に比較して変換する方式がある。高いサンプリングレートを得られるが、回路規模は大きくなる。

過去問題:
電験2種過去問【2021年機械 問8】(AD変換器の方式)

プログラム

バブルソート

バブルソートは、ふたつの配列の値を比較して条件に応じた交換を行う整列アルゴリズム。「値の大きい順(降順)」か「値の小さい順(昇順)」に配列を並び替える。

このソートを実行すると条件に応じた要素が泡のように浮かびあがってくるように見えるため、バブル(bubble: 泡)ソートと呼ばれる。

過去問題:
電験3種過去問【2020年機械 問18】(配列データの並べ替えプログラム)