C/Data Type/Bitwise XOR
Bitwise calculation
#include <stdio.h>
int main(void)
{
int i;
i = 100;
printf("initial value of i: %d\n", i);
i = i ^ 219;
printf("i after first XOR: %d\n", i);
i = i ^ 219;
printf("i after second XOR: %d\n", i);
return 0;
}
Perform a logical XOR operation using the two arguments
#include <stdio.h>
int xor(int a, int b);
int main(void)
{
printf("%d", xor(1, 0));
printf("%d", xor(1, 1));
printf("%d", xor(0, 1));
printf("%d", xor(0, 0));
return 0;
}
int xor(int a, int b)
{
return (a || b) && !(a && b);
}
the xor() function
#include <stdio.h>
int xor(int a, int b);
int main(void)
{
int p, q;
printf("enter P (0 or 1): ");
scanf("%d", &p);
printf("enter Q (0 or 1): ");
scanf("%d", &q);
printf("P AND Q: %d\n", p && q);
printf("P OR Q: %d\n", p || q);
printf("P XOR Q: %d\n", xor(p, q));
return 0;
}
int xor(int a, int b)
{
return (a || b) && !(a && b);
}
Все же проще воспользоваться сл. функцией:
int xor(int a, int b)
{
return a^b;
}