domingo, 1 de marzo de 2009

1º UNIDAD. Operaciones con Bits!

ExiSten seis operadores para manejo de bits:
1. & AND de bits
2. OR inclusivo de bits
3. ^ OR exclusivo de bits
4. << corrimiento a la izquierda
5. >> corrimineto a la derecha
6. ~ complemento a uno (unario)
AND (&)
La funcion “AND” activa los bits resultantes cuando los bits de los dos operandos son 1, de otra forma el resultado es =. Entonces si se coloca en linea los dos operandos y se realiza la funcion “AND”, se puede ver que los dos bits de mayor peso (los bits situados mas a la izquierda de cada numero) son 1, asi los bits resultantes de cada uno es 1. Los dos bits de menor peso se evaluan a 0 porque al menos uno de los dos operandos es 0:
1101
& 1100
1100

OR
La operacion OR inclusiva () significa que si uno de los dos operandos es 1 el resultado es 1.
El OR exclusivo significa que si los dos operandos son diferentes el resultado es 1, de otra forma es resultado es 0
Tabla 6–2. Ejemplo de OR exclusivo Operador1 Operador2 Resultado 0 0 0 0 1 1 1 0 1 1 1 0 Corrimiento de bits
Tanto el operador de corrimiento a la izquierda («) como el operador de corrimiento a la derecha (»), solo desplazan los bits del operando de la izquierda el numero de posiciones indicadas por el operador de la derecha. Los desplazamientos ocurren en la direccion indicada por el propio operador. Por ejemplo
13 >> 1
desplaza los bits del entero 13 una posicion a la derecha asi:
13 = 1101
1101 >> 1 = 0110
0110 = 6
Complemento a uno
El operador unario “~” da el complemento a uno de un entero; esto es, convierte cada bit 1 en un bir 0 y viceversa. Por ejemplo

^ XOR OR exclusivo
El funcionamiento de este operador binario es parecido al AND lógico , salvo que en este caso el resultado es 1 si ambos bits son complementarios (uno es 0 y el otro 1). En caso contrario devuelve 0.
expr-OR-exclusiva ^ AND-expresion
Ejemplo:int x = 10, y = 20;
int z = x ^ y;
Según el enunciado, el operador ^ aplicado entre los valores 7 y -2 resultaría:
7 == 0000 0111
-2 == 1111 1110
------------------1111 1001 == -7

No hay comentarios:

Publicar un comentario

dejanos un comment... nos es importante
tu opinion: