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.
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.
Se 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.
Lembrando 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.
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. |
Se 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.
Lembrando 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.
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.
Lembrando 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 |