Descripción
El compuesto operador AND (Y =) < a nivel de bits se utiliza a menudo con una variable y
una constante para forzar determinados bits en una variable al estado LOW (a 0). A
esto a menudo se hace referencia en las guías de programación como "borrado" o "reseteado"
de bits
Sintaxis:
x & = y; // Equivalente a x = x & y;
Parámetros
x: una variable char, int o longy: una constante entera o char, int o long
Ejemplo:
En primer lugar, una revisión del operador AND bit a bit (&)
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 0 0 1 (operando1 y operando2) - resultado devuelto
Los bits que han sufrido una operación "AND bit a bit " con 0 se ponen a 0 por lo que, si myByte es una variable byte, myByte & B 00000000 = 0;
Los bits que han sufrido una operación "AND bit a bit " con 1 no se modifican, así , myByte & B 11111111 =myByte;
Nota: debido a que se trata de bits de un
operador de bits - es conveniente utilizar 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.
En consecuencia, para borrar (poner a
cero) los bits 0 y 1 de una variable, dejando el resto de la variable sin
cambios, utilice el operador AND bit a bit compuesto (Y =) con la constante
B11111100
1 0 1 0 1 0 1 0 variable 1 1 1 1 1 1 0 0 máscara ---------------------- 1 0 1 0 1 0 0 0 variable sin cambios bits borrados Esta es la misma representación con los bits de la variable reemplazado con el símbolo x
x x x x x x x x variable
1 1 1 1 1 1 0 0 máscara
--------------------------
x x x x x x 0 0
variable sin cambios
bits borrados
Así que si:
myByte = B10101010;
myByte & = = B11111100 = B10101000
No hay comentarios:
Publicar un comentario