Descripción
El operador OR (| =) a nivel de bits compuesto se utiliza a menudo con una variable y una constante para "set" (puesta a 1) de determinados bits en una variable.
Sintaxis:
x | = y; // Equivalente a x = x | y;
Parámetros
x: una variable char, int o long
y: una constante entera o char, int o long
Ejemplo:
En primer lugar, una revisión del operador OR bit a bit (|)
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 1 1 1 (operando1 | operando2) - resultado devuelto
Los bits tratados "OR bit a bit " con 0 no se modifican, por lo que si myByte es una variable byte,
myByte | B00000000 = myByte;
Los bits tratados "OR bit a bit" con 1 se ponen a 1: por lo que,
myByte | B11111111 = B11111111;
En consecuencia - para configurar los bits 0 y 1 de una variable, dejando el resto de la variable sin cambios, utilice el operador OR bit a bit compuesto (| =) con la constante B00000011
1 0 1 0 1 0 1 0 variable
0 0 0 0 0 0 1 1 máscara
----------------------
1 0 1 0 1 0 1 1
variable sin cambios
bits establecidos
Esta es la misma representación con los bits de las variables reemplazadas por el símbolo x
x x x x x x x x variable
0 0 0 0 0 0 1 1 máscara
----------------------
x x x x x x 1 1
variables sin cambios
bits establecidos
Así que si:
myByte = B10101010;
myByte | = B00000011 = = B10101011;
No hay comentarios:
Publicar un comentario