最初のページ 戻る 次へ 最後のページ

#include <stdio.h>

int main(){

int a1,a0,b1,b0;/* 入力 */

int a,b;

int y2,y1,y0; /* a,b比較回路 */

int u2,u1,u0; /* 乗法標準形論理式 */

int v2,v1,v0; /* 簡単化した論理式 */

int i;

int t;

printf(" 入力 |比較回路 |乗法標準形|簡単化 |\n");

printf(" a(a1a0) b(b1b0) |y2 y1 y0 | u2 u1 u0 |v2 v1 v0 |\n");

printf("-----------------+---------+----------+---------+\n");

for (i=0;i<16;i++){

t=i; b0=t%2; b1=(t/=2)%2; a0=(t/=2)%2; a1=(t/=2)%2; a= i/4%4; b=i%4;

y2=(a>b);y1=(a==b);y0=(a<b);

u2= ( a1|| a0|| b1|| b0) && ( a1|| a0|| b1||!b0) && ( a1|| a0||!b1|| b0) && ( a1|| a0||!b1||!b0) &&

( a1||!a0|| b1||!b0) && ( a1||!a0||!b1|| b0) && ( a1||!a0||!b1||!b0) &&

(!a1|| a0||!b1|| b0) && (!a1|| a0||!b1||!b0) && (!a1||!a0||!b1||!b0);

u1= ( a1|| a0|| b1||!b0) && ( a1|| a0||!b1|| b0) && ( a1|| a0||!b1||!b0) &&

( a1||!a0|| b1|| b0) && ( a1||!a0||!b1|| b0) && ( a1||!a0||!b1||!b0) &&

(!a1|| a0|| b1|| b0) && (!a1|| a0|| b1||!b0) && (!a1|| a0||!b1||!b0) &&

(!a1||!a0|| b1|| b0) && (!a1||!a0|| b1||!b0) && (!a1||!a0||!b1|| b0);

u0= ( a1|| a0|| b1|| b0) && ( a1||!a0|| b1|| b0) && ( a1||!a0|| b1||!b0) &&

(!a1|| a0|| b1|| b0) && (!a1|| a0|| b1||!b0) && (!a1|| a0||!b1|| b0) &&

(!a1||!a0|| b1|| b0) && (!a1||!a0|| b1||!b0) && (!a1||!a0||!b1|| b0) && (!a1||!a0||!b1||!b0);

v2= ( a1||a0) && (!b1||!b0) && ( a0||!b1) && ( a1||!b0) && (a1||!b1);

v1= (!a1||b1) && ( a1||!b1) && (!a0|| b0) && ( a0||!b0);

v0= ( b1||b0) && (!a0|| b1) && (!a1|| b1) && (!a1||!a0) && (!a1||b0);

printf("%2d(%2d %1d) %1d(%2d %1d) |",a,a1,a0, b,b1,b0);

printf("%2d %2d %2d | ",y2,y1,y0);

printf("%2d %2d %2d |",u2,u1,u0);

printf("%2d %2d %2d |",v2,v1,v0);

printf("\n");

}

return 0;

}

C言語でプログラムを作ったが、

Excel等で論理関数をつかって

シミュレートしてもよい

否定 !

論理積 &&

論理和 ||