Mascaras y Tipos de Mascaras

2
Mascaras Una máscara son datos que se usan en operaciones de bits, al usar máscaras, múltiples bits en un byte, frase, palabra, número, etc. Pueden ser activados, desactivados, o invertidos al estado encendido o apag Enmascarando bits a 1: Para encender cierta serie de bits, el operador !"# puede ser usado, siguiendo e principio $ !" 1 % 1# y $ !" & % $#. 's(, para asegurarse que un bit esta encendido, !"# puede usarse 1#. Para de)ar ese bit sin cambio, !"# es usado con &#. E)emplo: encender el *to bit 1&&11 1&1 1&&10 1&1 !" &&&&1&&& &&&&1&&& 1&&111&1 1&&111&1 Enmascarando bits a &: +o ay forma de cambiar un bit de encendido a apagado usando el operador !". Para ese caso, se usa el operador '+-#, cuando a un se aplica el operador '+-# a un 1, el resultado es simplemente el valor original, como en: $ '+- 1 % $#. 'l contrario, usando '+-# con un valor & se gara que se regresara a &, as( es posible apagar un bit usando '+-# con &: $ '+- & % &#. Para de)ar los otr bits iguales, usando la mascar '+-# con el valor 1 es más que suficiente. E)emplo: 'pagar el *to bit 1&&11 1&1 1&&10 1&1 '+- 1111&111 1111&111 1&&1&1&1 1&&1&1&1 /onocer el estatus de un bit: Es posible usar mascaras para revisar fácilmente el estado de bits individ separados de otros bits, para acer esto, se debe apagar los otros bits usando '+-#. 0i es igual a &, entonces el bit estaba apagado, pero si el valor es otro, entonces el bit estará encendido. o que ace conveniente a este m2todo es que no es necesario saber cuál es el valor de la cifra, solo que no es & E)emplo: /onocer el estatus del *to bit 1&&11 1&1 1&&10 1&1 '+- &&&&1&&& &&&&1&&& &&&&1&&& &&&&&&&& /ambiar los valores de bits: Para cambiar el valor de varios números a la ve , sin importar cual valor s debe usar el operador 3!"#. 3!"# regresa 1 solo si un cierto numero de bits son 1. 'l contrario, si do correspondientes son 1, el resultado será &, pero solo si uno de ellos es 1, el resultado será 1. 's, la de los valores de los bits se acer al usar el operador 3!"# con un 1. 0i el bit original era 1, entonce resultara 1 3!" 1 % &#. 0i el bit original era & resultara & 3!" 1 % 1#. E)emplo: cambiar los valores de los bits 1&&111&1 1&&1&1&1 3!" 00001111 11111111 1&&1&&1& &11&1&1& Para escribir 1s y &s arbitrarios en un subcon)unto de bits, primero se escriben los &s en ese subcon)un entonces se escribe: "egister % 5register 6 7bitmask) | value;

description

descripion de mascaras en c++

Transcript of Mascaras y Tipos de Mascaras

Mascaras

Una mscara son datos que se usan en operaciones de bits, al usar mscaras, mltiples bits en un byte, frase, palabra, nmero, etc. Pueden ser activados, desactivados, o invertidos al estado encendido o apagado.Enmascarando bits a 1: Para encender cierta serie de bits, el operador OR puede ser usado, siguiendo el principio Y OR 1 = 1 y Y OR 0 = Y. As, para asegurarse que un bit esta encendido, OR puede usarse con 1. Para dejar ese bit sin cambio, OR es usado con 0.

Ejemplo: encender el 4to bit

10011101 10010101 OR 00001000 0000100010011101 10011101

Enmascarando bits a 0: No hay forma de cambiar un bit de encendido a apagado usando el operador OR. Para ese caso, se usa el operador AND, cuando a un se aplica el operador AND a un 1, el resultado es simplemente el valor original, como en: Y AND 1 = Y. Al contrario, usando AND con un valor 0 se garantiza que se regresara a 0, as es posible apagar un bit usando AND con 0: Y AND 0 = 0. Para dejar los otros bits iguales, usando la mascar AND con el valor 1 es ms que suficiente.

Ejemplo: Apagar el 4to bit

10011101 10010101 AND 11110111 1111011110010101 10010101

Conocer el estatus de un bit: Es posible usar mascaras para revisar fcilmente el estado de bits individuales separados de otros bits, para hacer esto, se debe apagar los otros bits usando AND. Si es igual a 0, entonces el bit estaba apagado, pero si el valor es otro, entonces el bit estar encendido. Lo que hace conveniente a este mtodo es que no es necesario saber cul es el valor de la cifra, solo que no es 0

Ejemplo: Conocer el estatus del 4to bit

10011101 10010101 AND 00001000 0000100000001000 00000000

Cambiar los valores de bits: Para cambiar el valor de varios nmeros a la vez, sin importar cual valor sea, se debe usar el operador XOR. XOR regresa 1 solo si un cierto numero de bits son 1. Al contrario, si dos bits correspondientes son 1, el resultado ser 0, pero solo si uno de ellos es 1, el resultado ser 1. As, la inversin de los valores de los bits se hacer al usar el operador XOR con un 1. Si el bit original era 1, entonces resultara 1 XOR 1 = 0. Si el bit original era 0 resultara 0 XOR 1 = 1.

Ejemplo: cambiar los valores de los bits

10011101 10010101 XOR 00001111 1111111110010010 01101010

Para escribir 1s y 0s arbitrarios en un subconjunto de bits, primero se escriben los 0s en ese subconjunto, entonces se escribe:

Register = (register & ~bitmask) | value;