Através de Álgebra de Boole.
Pode se basear nas tabelas verdade que eu postei antes.
Se ficou difícil entender com true e false, substitua o true por 1 e o false por 0:
AND
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
OR
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
XOR
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
Então, vamos separar os bits dos seus números.
O número 01 tem dois bits onde o bit a = 1 e o bit b = 0.
O número 10 tem dois bits onde o bit a = 0 e o bit b = 1.
Primeiro vamos calcular o bit a do resultado.
Então a conta será 1 ^ 0, onde 1 é o bit a do primeiro número e 1 é o bit a do segundo número.
Olhando a tabela verdade do XOR temos que 1 ^ 0 = 1, então o bit a do resultado será 1.
Agora vamos calcular o bit b do resultado.
Então a conta será 0 ^ 1, onde 0 é o bit b do primeiro número e 0 é o bit b do segundo número.
Olhando a tabela verdade do XOR temos que 0 ^ 1 = 1, então o bit b do resultado será 1.
Assim o resultado final de 01 ^ 10 é igual à 11.
Podemos fazer o cálculo conforme o quadro abaixo:
| b | a | bit
+---+---+
| 0 | 1 | primeiro número
^ +---+---+
| 1 | 0 | segundo número
= +---+---+
| 1 | 1 | resultado
Tente utilizar o quadro acima e a tabela verdade para calcular 10 ^ 11.
