Diferencia entre revisiones de «bitshift left»

De ArduWiki
Saltar a: navegación, buscar
m (Kike GL trasladó la página bitshift izquierda a bitshift left sin dejar una redirección)
Línea 1: Línea 1:
 
== Descripción ==
 
== 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 ==
 
== Sintaxis ==
 
<pre>
 
<pre>
 +
valor = valor <nowiki><<</nowiki> nBits;
 +
valor <nowiki><<</nowiki>= nBits;
 
</pre>
 
</pre>
 +
;valor: Constante o variable a trabajar.
 +
;nBits: Cantidad de bits a desplazar. '''Debe ser un valor entero positivo'''.
  
 
== Advertencias ==
 
== 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.
  
 
== Ejemplo ==
 
== Ejemplo ==
<pre>
+
Partiendo del valor 1, se puede obtener el resultado de una potencia con base 2.
</pre>
+
<syntaxhighlight lang="c++">
 +
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);
 +
}
 +
</syntaxhighlight>
 +
Imprime los resultados desde 2 a la 0 hasta 2 a la 31.
  
 
== Vea también ==
 
== Vea también ==
Línea 15: Línea 32:
 
* [[and]]
 
* [[and]]
 
* [[or]]
 
* [[or]]
* [[bitshift derecha]]
+
* [[bitshift right]]
  
 
== Referencias ==
 
== Referencias ==
* [https://www.arduino.cc/reference/es/language/functions/time/millis/ Guia de referencia de Arduino]
+
* [https://www.arduino.cc/reference/en/language/structure/bitwise-operators/bitshiftleft/ Artículo oficial de Arduino sobre el tema (en inglés)]
  
 
[[Category:Estructura]]
 
[[Category:Estructura]]

Revisión del 19:20 13 mar 2019

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 = valor << nBits;
valor <<= nBits;
valor
Constante o variable a trabajar.
nBits
Cantidad de bits a desplazar. Debe ser un valor entero positivo.

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.

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