c语言提供了几个位操作符,其中:
其结合力是依次递减的。
清华版《离散数学》(9787302130666),第1.2.2的合取、析取,使用c语言实现是:
#include<stdio.h> //条件:设p与q是两个命题,若p则q //只有当p为1,q为0时返回0值,其余返回1. tiaojian(p,q) { return (p && !q)?0:1; } //双条件:设p与q是两个命题,p当且仅当q,p的充分必要条件是q //当且仅当p与q同为0或同为1时返回1,其余返回0 shuangtiaojian(p,q) { return ((p && q)||(!p && !q))?1:0; } main() { int p,q; printf("P\tQ\tP合取Q\t排斥或\t可兼或\t条件\t双条件\n"); for(p=0;p<=1;p++) { for(q=0;q<=1;q++) { printf("%d\t%d\t%d\t%d\t%d\t%d\t%d\n",p,q,p&q,p^q,p|q,tiaojian(p,q),shuangtiaojian(p,q)); } //printf("\n"); } }
输出结果: