Uma técnica comum para determinar a paridade de um número (é par ou Ãmpar?) É dividir o número por 2 e verificar se sobrou algo. Isso faz sentido, é claro. Normalmente, o operador módulo é usado (por exemplo, my_value% 2 == 0). No entanto, você pode atingir o mesmo objetivo, com o mesmo número de caracteres, sem incorrer nos custos associados ao módulo. Aqui está como:
my_value & 1 == 0
Acontece que o bit menos significativo (LSB) de qualquer número dado define a paridade desse número. Vejamos os bits associados a alguns números (1, 2, 3, 4 e 5)
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
Se você olhar para o LSB (ou bit mais à direita) para cada número, você verá que todos os números Ãmpares terminam em 1 e todos os números pares terminam em 0. Bitwise & ‘ing aquele bit resultará em um 0 (se o número for par) ou 1 (se o número for Ãmpar). Se isto é confuso, você provavelmente não entende o bit a bit &. Pesquise no Google. Alguma opção de idioma neutro melhor por aÃ?