1. &Operador bit a bit
Dissemos anteriormente que todos os dados são armazenados na memória em uma representação binária. Há muito tempo, os programadores criaram muitas maneiras interessantes de trabalhar com números binários. Por exemplo, Java possui operadores lógicos que operam nos bits da representação binária de um número: &(AND), | (OR), ~(NOT ou complemento) e ^(XOR - exclusivo ou).
a & b
&(AND)
Este operador é muito semelhante ao &operador lógico (AND), só que é denotado por um único e comercial, não dois:
E é aplicado a bits individuais. Cada operando é tratado como um array de bits, e o ith bit do resultado é calculado usando o ith bit de cada um dos dois operandos.
O primeiro bit do resultado será calculado com base no primeiro bit do número a e no primeiro bit do número b, o segundo bit - com base no segundo bit do número a e no segundo bit do número b, etc.
O &operador (AND) significa "o bit resultante é igual a um somente se o bit correspondente do número afor igual a um, ANDo bit correspondente do número bfor igual a um":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Exemplos:
| Exemplo | Resultado |
|---|---|
|
|
|
|
|
|
|
|
2. |Operador bit a bit
Este operador é muito semelhante ao |operador lógico (OR), só que é denotado por uma única linha vertical, não duas:
a | b
E é aplicado a bits individuais. Cada operando é tratado como um array de bits, e o i-ésimo bit do resultado é calculado usando o i-ésimo bit de cada um dos dois operandos.
O |operador bit a bit (OR) significa "o bit resultante é igual a um se o bit correspondente do número afor igual a um, ORo bit correspondente do número bé igual a um":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Exemplos:
| Exemplo | Resultado |
|---|---|
|
|
|
|
|
|
|
|
Somente quando os bits correspondentes (os bits na mesma posição) de ambos os números são zero é que o bit correspondente do resultado é igual a zero.
3. ^Operador bit a bit (XOR ou "exclusivo ou")
O XORoperador, também pronunciado exclusivo ou , é denotado pelo ^símbolo. Para inseri-lo no teclado, pressione shift + 6 (em um layout de teclado em inglês).
a ^ b
Este operador é um pouco semelhante ao ORoperador, inclusive por ter um nome semelhante:XOR
O ^operador bit a bit (XOR) significa "o bit resultante é igual a um se o bit correspondente do número afor igual a um, ORo bit correspondente do número bé igual a um, mas não ambos ao mesmo tempo":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Exemplos:
| Exemplo | Resultado |
|---|---|
|
|
|
|
|
|
|
|
Somente quando os bits correspondentes (os bits na mesma posição) de ambos os números são diferentes , o bit correspondente do resultado é igual a um . Se os bits forem iguais , o bit resultante será igual a zero .
4. ~Operador bit a bit (NOT, COMPLEMENT)
Acho que você já pode adivinhar o que ele faz. Este operador é muito semelhante ao !operador lógico (NOT), mas é indicado por um til , não por um ponto de exclamação:
~a
Este é um operador unário , o que significa que se aplica a um único número, não a dois. Ele aparece antes deste único operando.
O ~operador bit a bit significa "o bit resultante é um se o bit correspondente do número afor zero e é zero se o bit correspondente do número afor um":
~1 = 0
~0 = 1
Exemplos:
| Exemplo | Resultado |
|---|---|
|
|
|
|
|
|
|
|
Este operador simplesmente muda o bit que está 1para 0e os bits que estão 0para 1.
GO TO FULL VERSION