<< (deslocar à esquerda)
resultado = a << n
O << empurra todos os bits de um número n casas pra esquerda, preenchendo com zeros na direita. Cada casa deslocada equivale a multiplicar por 2. É a forma mais comum de montar máscaras (1 << 3 acende o bit 3) e de empacotar valores.
Sintaxe
resultado = a << n;
Parâmetros
- a: o valor inteiro cujos bits serão deslocados.
- n: quantas casas deslocar pra esquerda.
Retorno
Um inteiro com os bits de a movidos n posições pra esquerda (zeros entram pela direita).
Exemplo
void setup() {
Serial.begin(9600);
// monta uma máscara pro bit 3
byte mascara = 1 << 3; // 0b00001000 = 8
Serial.println(mascara);
// 1 << 4 é o mesmo que 1 * 16
Serial.println(1 << 4); // 16
}
void loop() {}
Notas e cuidados
- Deslocar demais estoura o tipo e os bits que passam da última posição somem — num
intde 16 bits do Uno a última posição válida é o bit 15. E deslocar por um número de casas maior ou igual à largura do tipo (como1 << 16numint) é comportamento indefinido: não conte com um valor específico. - Se o número puder ficar grande, use um literal apropriado, como
1UL << 20, pra trabalhar emunsigned long(32 bits). 1 << né a maneira idiomática de criar a máscara do bitn.