Logo Studenta

Operadores de Bit

¡Este material tiene más páginas!

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

Continuar navegando