#include <stdio.h>
/*
X Y | X ^ Y
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
*/
void print_bits(int n, int size) {
for (int i = 1 << (size - 1); i > 0; i = i / 2)
(n & i) ? printf("1") : printf("0");
}
int main(void) {
int x = 5, y = 5;
print_bits(x, 8);
printf("\n^\n");
print_bits(y, 8);
printf("\n=\n");
print_bits(x ^ y, 8);
printf("\n\n\n");
x = 7, y = 0;
print_bits(x, 8);
printf("\n^\n");
print_bits(y, 8);
printf("\n=\n");
print_bits(x ^ y, 8);
printf("\n\n\n");
x = 0, y = 6;
print_bits(x, 8);
printf("\n^\n");
print_bits(y, 8);
printf("\n=\n");
print_bits(x ^ y, 8);
printf("\n\n\n");
x = 0, y = 0;
print_bits(x, 8);
printf("\n^\n");
print_bits(y, 8);
printf("\n=\n");
print_bits(x ^ y, 8);
printf("\n\n\n");
return 0;
}
/*
run:
00000101
^
00000101
=
00000000
00000111
^
00000000
=
00000111
00000000
^
00000110
=
00000110
00000000
^
00000000
=
00000000
*/