bitshift left

De ArduWiki
Revisión del 19:34 25 abr 2019 de Kike GL (Discusión | contribuciones) (Advertencias)

Saltar a: navegación, buscar

Descripción

Desplaza hacia la izquierda (hacia el bit más significativo) una cantidad determinada de bits de una variable o constante; rellenando con ceros.

Sintaxis

valor << posiciones;
valor <<= posiciones;

Parametros

valor
Variable o constante a trabajar.
posiciones
Cantidad de posiciones a desplazar. Valores entre 0~32. Tipo int

Advertencias

  • Esta operación desplaza bits descartando los que hayan quedado fuera, no los rota de posición. Por lo tanto, desplazar la cantidad suficiente de bits puede resultar en un valor cero.

Comentarios

Operacion Resultado
1 << 0 1
1 << 1 2
1 << 2 4
1 << 8 8
1 << 8 256
1 << 9 512
1 << 10 1024

Ejemplo

Partiendo del valor 1, se puede obtener el resultado de una potencia con base 2.

unsigned long resultado = 1;

for (byte potencia = 0; potencia < sizeof(unsigned long) * 8; potencia++) {
  Serial.print("2^");
  Serial.print(potencia);
  Serial.print(" = ");
  resultado <<= 1; // Se desplaza una vez cada iteración de este ciclo.
  Serial.println(resultado);
}

Imprime los resultados desde 2 a la 0 hasta 2 a la 31.

Vea también

Referencias