<< (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 int de 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 (como 1 << 16 num int) é 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 em unsigned long (32 bits).
  • 1 << n é a maneira idiomática de criar a máscara do bit n.

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker