はじめに
どうも! みなため(@MinatameT)です。
今回は、NOR回路(NOR演算)の真理値表を表示するプログラムを紹介します。
条件文を用いる方法と、ビット演算子で計算する方法の2つのやり方を紹介します。
条件文バージョン
配列、掛け算、割り算を使わずに、ループ文と条件文でその都度判定させていきます。
決してスマートな方法ではありませんが、わかりやすい方法だと思います。他にもやり方はありますので、これは解答例の1つだと認識してください。
ソースコード
#include<stdio.h>
int main(void)
{
int a,b,x;
printf("NOR回路の真理値表(入力:A、B 出力:X)\n");
printf("A B X\n");
printf("------\n");
for(a=0; a<=1; a=a+1)
{
for(b=0; b<=1; b=b+1)
{
if(a==0 && b==0) //aもbも0のとき
{
x = 1;
}
else //上記の条件を満たさなければ
{
x = 0;
}
printf("%d %d %d\n",a,b,x);
}
}
return(0);
}
2重ループ(for文)がありますが、これによって以下の順番で出力できます。
- A = 0、B = 0のとき
- A = 0、B = 1のとき
- A = 1、B = 0のとき
- A = 1、B = 1のとき
それでは、実行結果を確認していきます。
実行結果
NOR回路の真理値表(入力:A、B 出力:X)
A B X
------
0 0 1
0 1 0
1 0 0
1 1 0
NOR回路の真理値表が正しく表示されていますね!
ビット演算子バージョン
こちらの方法では「|」と「!」を用いて、スマートにNOR演算をしています。
ソースコード
#include<stdio.h>
int main(void)
{
int a,b,x;
printf("NOR回路の真理値表(入力:A、B 出力:X)\n");
printf("A B X\n");
printf("------\n");
for(a=0; a<=1; a=a+1)
{
for(b=0; b<=1; b=b+1)
{
x = !(a | b); //NOR演算(a | bの結果を!で否定。)
printf("%d %d %d\n",a,b,x);
}
}
return(0);
}
実行結果
NOR回路の真理値表(入力:A、B 出力:X)
A B X
------
0 0 1
0 1 0
1 0 0
1 1 0
NOR回路の真理値表が正しく表示されていますね!
なお、NAND回路の真理値表の表示方法は、以下の記事で紹介してあります。
今回はここまでです。皆さん、お疲れ様でした。