Diferencia entre revisiones de «bitshift left»
De ArduWiki
(→Vea también) |
|||
Línea 29: | Línea 29: | ||
== Vea también == | == Vea también == | ||
− | * [[not]] | + | * [[not]] - (<nowiki>!</nowiki>) |
− | * [[and]] | + | * [[and]] - (<nowiki>&&</nowiki>) |
− | * [[or]] | + | * [[or]] - (<nowiki>||</nowiki>) |
− | * [[bitshift right]] | + | * [[not bit a bit]] - (<nowiki>~</nowiki>) |
+ | * [[and bit a bit]] - (<nowiki>&</nowiki>) | ||
+ | * [[or bit a bit]] - (<nowiki>|</nowiki>) | ||
+ | * [[xor bit a bit]] - (<nowiki>^</nowiki>) | ||
+ | * [[bitshift right]] - (<nowiki>>></nowiki>) | ||
== Referencias == | == Referencias == |
Revisión del 23:28 25 abr 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
- not - (!)
- and - (&&)
- or - (||)
- not bit a bit - (~)
- and bit a bit - (&)
- or bit a bit - (|)
- xor bit a bit - (^)
- bitshift right - (>>)