OR (|=) bit a bit compuesto

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