/*
X Y | X ^ Y
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0
*/
fn print_bits(label: &str, n: u8) {
println!("{:08b} {}", n, label);
}
fn main() {
let cases = [(5, 5), (7, 0), (0, 6), (0, 0)];
for (x, y) in cases {
print_bits("", x);
println!("^");
print_bits("", y);
println!("=");
print_bits("", x ^ y);
println!("\n");
}
}
/*
run:
00000101
^
00000101
=
00000000
00000111
^
00000000
=
00000111
00000000
^
00000110
=
00000110
00000000
^
00000000
=
00000000
*/