#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等で論理関数をつかって
シミュレートしてもよい
否定 !
論理積 &&
論理和 ||