逻辑运算中函数表达式有为1的吗?

逻辑运算中函数表达式有为1的吗?
最新回答
余盼兮

2026-10-20 12:20:00


这个函数的变量比较少,画一个“真值表”就行了(不同教材与或非的符号不大一样。你这里AB是或,+是与,横线是非吧?):

A B C Y
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1

上面的结果我是用C程序输出的,代码如下:

#include <stdio.h>
#define bit_set(mask, n) ((mask) |= (1 << (n)))
#define bit_unset(mask, n) ((mask) &= ~(1 << (n)))
#define bit_isset(mask, n) ((mask) & (1 << (n)))
#define bit_empty(mask) ((mask) = 0)
#define bit_fill(mask) ((mask) = ~0)
int main(int argc, char *argv[])
{
int i;

printf("A B C Y\n");
for(i=0; i<8; i++)
{
char A, B, C, Y;

A = bit_isset(i, 2);
B = bit_isset(i, 1);
C = bit_isset(i, 0);

// Y = AB + BC + (!A)C
Y = (A || B) && (B || C) && (!A || C);

#define TOBOOL(x) ((x) ? 1 : 0)
printf("%d %d %d %d\n", TOBOOL(A), TOBOOL(B), TOBOOL(C), TOBOOL(Y));
}

return 0;
}