我要評估在C以下布爾表達式:如何評估C中的布爾表達式?
f = (b+c')(a'+c')(a+b'+c)
這是我的當前程序:
#include <stdio.h>
int main()
{
int a,b,c,f;
a=0;b=1;c=1;
f=((b|(~c))&((~a)|(~c))&(a|(~b)|c));
printf("%d\n",f);
}
該函數應返回1,因爲A = 0,B = 1和c = 1但它返回-1。 而且,當a = 1,B = 1和c = 1它返回-2而不是0
爲什麼發生這種情況?我該如何解決它?
*布爾*用C語義是通過運營商提供的'!','||'和''&&。運算符'〜',''''和'&'實現*按位*語義,這是完全不同的事情。 – AnT
請注意,C也有一個布爾類型,如果你想明確地說明你正在處理布爾類型,你不必使用* int *。 – hyde