Diferencia entre revisiones de «or bit a bit compuesto»
De ArduWiki
(→Vea también) |
(→Descripción) |
||
(No se muestra una edición intermedia del mismo usuario) | |||
Línea 2: | Línea 2: | ||
El operador '''OR bit a bit compuesto''' (|=) se usa para forzar cierto bit de una variable a 1 (HIGH). | El operador '''OR bit a bit compuesto''' (|=) se usa para forzar cierto bit de una variable a 1 (HIGH). | ||
− | {| class="wikitable" | + | {| class="wikitable col3cen" |
+ | !a!!b!!a <nowiki>|=</nowiki> b | ||
|- | |- | ||
− | | | + | |0||0||0 |
|- | |- | ||
− | + | |1||0||1 | |
|- | |- | ||
− | | | + | |0||1||1 |
+ | |- | ||
+ | |1||1||1 | ||
|} | |} | ||
Línea 80: | Línea 83: | ||
* [https://manueldelgadocrespo.blogspot.com/p/or-bit-bit-compuesto.html Manuel Delgado Crespo] | * [https://manueldelgadocrespo.blogspot.com/p/or-bit-bit-compuesto.html Manuel Delgado Crespo] | ||
− | [[Category:Operador bit a bit]] | + | [[Category:Operador bit a bit compuesto]] |
Revisión actual del 00:06 27 sep 2019
Contenido
Descripción
El operador OR bit a bit compuesto (|=) se usa para forzar cierto bit de una variable a 1 (HIGH).
a | b | a |= b |
---|---|---|
0 | 0 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 1 |
Nota: A menudo se hace referencia en las guías de programación como "puesta a 1" (SET) de bits.
Sintaxis
variable |= mascara; variable = variable | mascara;
Parámetros
- variable
- Nombre de la variable a operar. Puede ser tipo: char, byte, int o long
- mascara
- constante entera. Puede ser tipo: char, byte, int o long
Retorno
- Los bits tratados con 0 no se modifican. Mantienen su estado.
- Los bits tratados con 1 se ponen a 1, sin importar su estado.
Comentarios
debido a que se trata de bits de un operador de bits - es conveniente usar el formateador binario con constantes. Las cifras siguen siendo el mismo valor en otras representaciones, que simplemente no son tan fáciles de entender. Además, B00000000 se muestra por claridad, pero cero en cualquier formato de número es cero.
Advertencias
Nada.
Ejemplo 1
Para configurar los bits 0 (menos significativo) y 1 de una variable, dejando el resto de la variable sin cambios, use el operador OR bit a bit compuesto (| =) con la constante B00000011.
byte a = B10101010;
a |= B00000011; //B10101011
Variable | Bxxxxxxxx |
Mascara | B00000011 |
Resultado | Bxxxxxx11 |
Ejemplo 2
void setup() {
Serial.begin(9600);
int z,n = 12345;
byte val1 = highByte(n);
byte val2 = lowByte(n);
z = val1; //Tomamos MSB
z <<= 8; //Desplazamos 8 bits a la izquierda
z |= val2; //Añadimos LSB}
Serial.println(z);
}
void loop(){
//Nada
}
Vea también
- incremento (++)
- decremento (--)
- suma compuesta (+=)
- resta compuesta (-=)
- multiplicacion compuesta (*=)
- division compuesta (/=)
- modulo compuesto (%=)