Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INGENIERÍA ELECTRÓNICA Comisión 1era 5ta OPERADORES DE BITS SE APLICAN BIT A BIT SOBRE CADA OPERANDO (VARIABLES) •Tipos: INVERSOR ~ OR | AND & XOR ^ DESPLAZAMIENTOS >> , << INVERSOR ~ (alt +126) A ~A 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 1 0 0 0 A ~A operador monario Ejemplo Inversor1 0xC7 0x38 Ingresar dos números enteros y calcular la resta utilizando el complemento a 2 Resta = Num1 + (-Num2) Utilizando el complemento a dos Resta = Num1 + ~ Num2 + 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 Num1 30 Num2 40 1 1 0 1 1 0 0 0~Num2+1 1 1 1 1 0 1 1 0Resta 0 0 0 1 0 1 0 -10 Diferencia con el inversor lógico ! A = 0xC7 ~A -> 0x38 !A -> 0 !0-> 1 OR | (alt +124) A B A|B 0 0 0 0 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1A 1 0 0 0 1 0 1 0B A|B 1 1 0 0 1 1 1 1 OR | (alt +124) A B A|B 0 0 0 0 1 1 1 0 1 1 1 1 SUMA LOGICA A | 0 = A 0 Es el elemento neutro A | 1 = 1 Fuerza un 1 OR | (alt +124) A B A|B 0 0 0 0 1 1 1 0 1 1 1 1 0 0 x x x x x 0A 1 1 0 0 0 0 0 1B A|B 1 1 x x x x x 1 APLICACIÓN Poner en 1 uno o más bits sin modificar el resto Poner en 1 los bits indicados sin cambiar el resto 1 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 A MASK A= A | MASK AND & (alt + 38) A B A&B 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1A 1 0 0 0 1 0 1 0B A&B 1 0 0 0 0 0 1 0 AND & (alt + 38) PRODUCTO LOGIC0 A & 0 = 0 Fuerza un 0 A & 1 = A 1 es el elemento neutro A B A&B 0 0 0 0 1 0 1 0 0 1 1 1 AND & (alt + 38) 1 x 0 x 1 x x xA 1 0 1 0 1 0 0 0B A&B 1 0 0 0 1 0 0 0 APLICACIÓN En la variable A se desea conservar los bits 3, 5, 7 y se pretende descartar los restantes(X) A B A&B 0 0 0 0 1 0 1 0 0 1 1 1 Poner en 0 los bits indicados sin cambiar el resto 1 1 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 0 A MASK A= A & MASK FILTRO : Analizar si el bit mas significativo es cero o uno 1 1 0 1 1 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 A MASK A & MASK En una variable de 8 bits poner 110 en los bits mas significativos, el resto queda igual • 1X X X X X X X X 1 1 0 1 1 1 1 1 X X 0 X X X X X A MASK0 A =A & MASK0 1 1 0 0 0 0 0 0MASK1 1 1 0 X X X X XA =A | MASK1 XOR ^ (alt + 94) A B A^B 0 0 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 1 1 1A 1 0 0 0 1 0 1 0B A^B 0 1 0 0 1 1 0 1 XOR ^ (alt + 94) O Exclusiva - Excluyente A ^ 0 = A 0 es el elemento neutro A ^ 1 = ~A 1 invierte A B A^B 0 0 0 0 1 1 1 0 1 1 1 0 XOR ^ (alt + 94) pp APLICACIÓN •Invertir uno o mas bits sin modificar el resto (inversor controlado) •Detecta desigualdades ( 0-> iguales 1-> distintos) •Detecta cantidad impar de unos. 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 1 IMPAR 0 PAR DESPLAZAMIENTO A IZQUIERDA << 0 1 0 0 0 1 1 1 1 0 0 0 1 1 1 0 A A<< = 1 ( A= A << 1) A << CANTIDAD DE BITS A DESPLAZAR Completa con CERO (es multiplicar el numero por dos) 0x47 7110 0x8E 14210 DESPLAZAMIENTO A DERECHA >> 1 1 0 0 0 1 1 1A A >> CANTIDAD DE BITS A DESPLAZAR ¿Como se completa ? •Con 0 si la variable es no signada •Con 0 si la variable es signada y positiva •Con 1 si la variable es signada y negativa DESPLAZAMIENTO A DERECHA >> 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 1 A A>> = 1 ( A= A >> 1) A >> CANTIDAD DE BITS A DESPLAZAR Completa con CERO(variable no signada) (es dividir el numero por dos) 0xC6 7010 0x23 3510
Compartir