&

Descrição

O operador bitwise E em C++ é um único & (e comercial ou ampersand), usado entre duas expressões inteiras. O operador E bit-a-bit atua em cada bit dos operandos independentemente, de acordo com a seguinte regra: se ambas entradas são 1, a saída resultante é 1, do contrário o resultado é 0.

Outra forma de se expressão isso é:

0 0 1 1 operando1 0 1 0 1 operando2 ---------- 0 0 0 1 (operando1 & operando2) - resultado retornado

No Arduino, o tipo int é um valor 16-bit, então & usado entre dois operandos do tipo int causa 16 operações bit-a-bit E simultâneas.

Código de Exemplo

Em um fragmento de código do tipo:

int a = 92; // em binário: 0000000001011100 int b = 101; // em binário: 0000000001100101 int c = a & b; // resultado: 0000000001000100, ou 68 em decimal.

Cada um dos 16 bits em a e b são processados com o operador &, e todos os 16 bits resultantes são armazenados em c, resultando no valor binário 01000100, que é 68 em decimal.

Um dos usos mais comuns da operação bit-a-bit E é selecionar um bit particular (ou bits) de um valor inteiro, frequentemente chamado de masking. Veja abaixo um exemplo (específico para arquitetura AVR):

PORTD = PORTD & B00000011; // apaga os bits 2 - 7, deixando o valor dos pinos PD0 e PD1 intocados (xx & 11 == xx)

Ver Também

Linguagem : && E lógico

Exemplo : Tutorial BitMath (Em Inglês)

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.