Diferencia entre revisiones de «bitshift right»

De ArduWiki
Saltar a: navegación, buscar
m (Kike GL trasladó la página bitshift derecha a bitshift right sin dejar una redirección)
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
 +
Desplaza hacia la derecha (hacia el bit menos significativo) una cantidad determinada de bits de una variable o constante; rellenando con ceros.
  
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
 +
valor = valor >> nBits;
 +
valor >>= 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 ==
 +
Sirve para realizar una división entera con un cociente potencia de base 2
 
<pre>
 
<pre>
 +
analogWrite(pin, analogRead(A0) >> 2);
 +
// Mucho más rápido que map() o una división.
 
</pre>
 
</pre>
 +
'''analogRead(A0) >> 2''' equivale a '''analogRead(A0) / 4'''
  
 
== Vea también ==
 
== Vea también ==
Línea 15: Línea 25:
 
* [[and]]
 
* [[and]]
 
* [[or]]
 
* [[or]]
* [[bitshift izquierda]]
+
* [[bitshift left]]
  
 
== Referencias ==
 
== Referencias ==

Revisión del 15:15 6 oct 2018

Descripción

Desplaza hacia la derecha (hacia el bit menos 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

Sirve para realizar una división entera con un cociente potencia de base 2

analogWrite(pin, analogRead(A0) >> 2);
// Mucho más rápido que map() o una división.

analogRead(A0) >> 2 equivale a analogRead(A0) / 4

Vea también

Referencias