Operadores bit a bit — AND, OR, XOR, NOT e os dois turnos — trabalham diretamente na representação binária de um número, um bit por vez, em vez de em seu valor decimal. Eles aparecem constantemente na programação: máscaras de bits, sinalizadores, permissões, hashing e truques de desempenho de baixo nível, todos dependem deles. Esta calculadora permite inserir dois números inteiros em decimal, binário ou hexadecimal, aplicar qualquer uma das seis operações e ver exatamente quais bits foram alterados.

Como funciona cada operação

AND, OR e XOR comparam A e B uma posição de bit por vez e os combinam de acordo com uma regra simples: AND mantém 1 apenas quando ambas as entradas são 1, OR mantém 1 onde qualquer uma das entradas é 1, e XOR mantém 1 apenas quando as entradas discordam. NOT é diferente — ele pega uma única entrada e inverte cada bit, o que em uma largura de bit fixa é igual ao cálculo −A−1.

As duas operações de deslocamento movem os bits lateralmente em vez de combinar dois números. Um deslocamento para a esquerda por n multiplica o valor por 2ⁿ, deslocando cada bit em direção ao limite superior e preenchendo o limite inferior com zeros. Um deslocamento para a direita (lógico) por n divide por 2ⁿ e arredonda para baixo, deslocando cada bit em direção ao limite inferior e descartando tudo o que cair da borda direita.

Entradas e o que elas significam

Escolha a base em que seus números serão escritos — decimal, binário ou hexadecimal — e a largura de bits (8, 16 ou 32 bits) em que o cálculo será realizado. A largura de bits é importante porque determina como NOT e os números negativos se comportam: tudo é calculado usando o complemento de dois nessa largura, portanto, a mesma operação nos mesmos números pode fornecer um padrão de bits diferente na largura de 8 bits versus 16 bits.

Para AND, OR e XOR, tanto o valor A quanto o valor B são operandos completos. Para um deslocamento, o Valor B é reinterpretado como o valor do deslocamento em bits (sempre lido como um número decimal simples, independentemente da base selecionada) em vez de um segundo operando. NOT usa apenas o valor A.

Limites e casos extremos

A entrada decimal negativa é suportada e armazenada através do complemento de dois na largura de bits escolhida - por exemplo, -1 na largura de 8 bits é o padrão de todos os uns 11111111. Mudar por um valor igual ou superior à largura de bits configurada simplesmente limpa cada bit, já que não há mais nada para mudar. Esta calculadora concentra-se em operações bit a bit inteiras; para converter um número entre sistemas numéricos sem aplicar uma operação, use a Calculadora Base Numérica.