Operador E bit a bit
Estes operadores são chamados de bit a bit, porque os operando são comparados no nível dos seus bits.
Símbolo & é chamado de E bit a bit.
<operando1> & <operando2>Para este operador não importa se algum dos operando tem o valor false, ele vai verificar todos os operandos que houver na expressão.
Exemplo:
Neste caso será impresso o valor false, e o operador & ira comparar o valor de todas variáveis.
C:\>javac OperadorBitBitE.java
C:\>java OperadorBitBit
falseSe usarmos valores inteiros, ele irá comparar cada bit, exemplo:
Neste caso será impresso o valor 6, porque o operador & vai comparar cada bit na base binária e depois a mesma é convertida para a base decimal.
C:\>javac OperadorBitBitE2.java
C:\>java OperadorBitBit
6Lembrando que um inteiro tem 16 bits, então:
Variável a tem o valor 30.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
Variável b tem o valor 7.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Resultado tem o valor 6.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Tabela verdade:
| Operando1 | Operando2 | Resultado |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
Operador OU bit a bit
Símbolo | é chamado de OU bit a bit.
<operando1> | <operando2>Para este operador não importa se algum dos operando tem o valor true, ele vai verificar todos os operando que tiver na expressão.
Exemplo:
| Neste caso o valor impresso será true, e o operador | ira comparar o valor de todas variáveis. |
C:\>javac OperadorBitBitOU.java
C:\>java OperadorBitBitOU
trueSe usarmos valores inteiros, ele irá comparar cada bit, exemplo:
Neste caso será impresso o valor 31, porque o operador | vai comparar cada bit na base binária e depois a mesma é convertida para a base decimal.
C:\>javac OperadorBitBitOU2.java
C:\>java OperadorBitBitOU2
trueLembrando que um inteiro tem 16 bits, então:
Variável a tem o valor 30.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
Variável b tem o valor 7.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Resultado tem o valor 31.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 |
Tabela verdade:
| Operando1 | Operando2 | Resultado |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
Operador OU EXCLUSIVO bit a bit
Símbolo ^ é chamado de OU EXCLUSIVO bit a bit.
<operando1> ^ <operando2>Se usarmos valores inteiros, por exemplo ele ira comparar cada bit, exemplo:
Neste caso será impresso o valor 25, porque o operador ^ vai comparar cada bit na base binária e depois a mesma é convertida para a base decimal.
C:\>javac OperadorBitBitOUExclusivo.java
C:\>java OperadorBitBitOUExclusivo
25Lembrando que um inteiro tem 16 bits, então:
Variável a tem o valor 30.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
Variável b tem o valor 7.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Resultado tem o valor 25.
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
Tabela verdade:
| Operando1 | Operando2 | Resultado |
|---|---|---|
| 1 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |