コンピュータは電子回路でできています。ハードウエアレベルでコンピュータを、プログラミング言語を理解するには論理回路の仕組みを知っておくと役立ちます。
今回は論理回路の一つであるNOT回路について解説していきます。
目次
NOT回路とは?
0と1を判断
「コンピュータが認識できるものは0か1であるため、二進数を使っている」と聞いたことがある?かと思います。
ではコンピュータが人間と同じ0と1を認識しているわけではないですよね?
何を1と0としているかというと、電圧の高い・低いで区別しています。具体的には電圧が高い状態を「1」電圧が低い状態を「0」としています。例えば5Vの電源があって5Vなら1、0Vなら0とします。
5Vにすれば「1」、0Vにすれば「0」というように表現することができます。
あとは人間がこれに意味を持たせたり組み合わせたりすることで計算などができるようにします。
これを実現するのが論理回路です。
NOT回路の基本
論理回路と呼ばれる仕組みの一つにNOT回路があります。
NOT回路は論理否定の機能を持った論理回路です。入力1に対して0を出力します。入力0に対しては1を出力します。
入力 | 出力 |
1 | 0 |
0 | 1 |
これを先ほどの電圧で示すなら5Vの電圧が入力なら0Vを出力し、0Vなら5Vを出力するような回路です。
NOT回路は以下の図のように表現します。
NOT回路を電子回路で表現
電子回路でNOT回路を表現してみます。電子回路でNOT回路を表現する方法はいろいろありますが、ここではトランジスタを利用したものを紹介します。
電子回路の構成要素をまず説明します。
左にあるinputは入力です。中央下にある三角はグランド(GND)でマイナス端子扱いです。上にある部品はトランジスタです。トランジスタは普段はスイッチが切れた状態ですが、inputから流れてくる電流によって上から下にスイッチを入れる役割があります。
この回路ではinputが「0」の時、トランジスタは切れているので、上にある別電源の+5Vがoutoputに流れます。つまり、input「0」でoutput「1」です。
一方で、inputに電気を流して「1」とした時、トランジスタはスイッチが入って上から下に電気を流します。すると、outputに行く電流はマイナスのほう流れて行ってしまうため、outputは0になります。したがってinput「1」の時outputは「0」になります。
まとめると input→outputは0→1, 1→0となるのでNOT回路になっているのがわかります。
トランジスタの発明がコンピュータの発展に大きく関わっています。トランジスタと同じ働きをするものとして初期は電磁誘導を利用して機械的にスイッチングをするリレーが登場しその後、より高速な真空管が登場、その後に小型なトランジスタが登場しました。
電子部品については別の記事で紹介します。
こめやん