Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porEncarnación Cordero Mora Modificado hace 8 años
1
www.microse.cic.ipn.mx 1 Arquitecturas de Computadoras Breve repaso al algebra booleana
2
www.microse.cic.ipn.mx 2 Álgebra Booleana Fue desarrollada por George Boole en el siglo 19 - Es una representación algebráica de la lógica binaria - Codifica “verdadero” como 1 y “falso” como 0 AND OR A&B = 1 cuando A|B = 1 cuando A = 1 o B= 1 A = 1 y B = 1 NOTXOR ~A = 1 cuando A = 0A^B = 1 cuando A = 1 o B = 1, pero no ambos A,B& 000 010 100 111 A,B| 000 011 101 111 AÃ 01 10 A,B^ 000 011 101 110
3
www.microse.cic.ipn.mx 3 Aplicaciones del álgebra de Boole Fue aplicado a sistemas por Claude Shannon En su tesis de Mestría del MIT en 1937 Razonó acerca de redes de relevadores con interruptores Se codificaron los interruptores cerrados como 1 y los interruptores abiertos como 0 A ~A ~B B Se conecta cuando A&~B | ~A&B = A^B A&~B ~A&B
4
www.microse.cic.ipn.mx 4 Álgebra de enteros Aritmética de enteros Z, +, *, -, 0, 1 forma un anillo La adición es la operación de “suma” La multiplicación es la operación de “producto” - Es inverso aditivo 0 Es la identidad de la suma 1 Es la identidad del producto
5
www.microse.cic.ipn.mx 5 Álgebra Booleana {0, 1}, |, &, ~, 0, 1 forma un “álgebra de Boole” OR es la operación de “suma” AND es la operación de “producto” ~ Es la operación de complemento (inverso no aditivo) 0 Es la identidad de la suma 1 Es la identidad del producto
6
www.microse.cic.ipn.mx 6 Álgebra Booleana Anillo entero Conmutatividad A | B = B | A A + B = B + A A & B = B & A A * B = B * A Asociatividad (A | B) | C = A | (B | C) (A + B) + C = A + (B + C) (A & B) & C = A & (B & C) (A * B) * C = A * (B * C) Producto distribuido sobre la suma A & (B | C) = (A & B) | (A & C) A * (B + C) = A * B + B * C Identidades de suma y producto A | 0 = A A + 0 = A A & 1 = A A * 1 = A Cero es un producto aniquilador A & 0 = 0 A * 0 = 0 Cancelación de la negación ~ (~ A) = A – (– A) = A
7
www.microse.cic.ipn.mx 7 Álgebra Booleana Anillo entero Booleana: Suma distribuida sobre el producto A | (B & C) = (A | B) & (A | C) A + (B * C) (A + B) * (A + C) Booleana: Idempotencia A | A = A A + A A “A es verdaero” o “A es verdadero” = “A es verdadero” A & A = A A * A A Booleana: Absorción A | (A & B) = A A + (A * B) A “A es verdadero” o “A es verdadero y B es verdadero” = “A es verdadero” A & (A | B) = A A * (A + B) A Booleana: Leyes de complementos A | ~A = 1 A + –A 1 “A es verdadero” or “A es falso” Anillo: Cada elemento tiene su inverso aditivo A | ~A 0 A + –A = 0
8
www.microse.cic.ipn.mx 8 Propiedades de & y ^ Anillo Booleano {0,1}, ^, &, , 0, 1 Idéntica a enteros en mod 2 es la operación de identidad: (A) = A A ^ A = 0 PropiedadAnillo Booleano Suma conmutativaA ^ B = B ^ A Producto conmutativoA & B = B & A Suma asociativa(A ^ B) ^ C = A ^ (B ^ C) Producto asociativo (A & B) & C = A & (B & C) Producto sobre la sumaA & (B ^ C) = (A & B) ^ (B & C) 0 es identidad suma A ^ 0 = A 1 es identidad producto A & 1 = A 0 es producto aniquiladorA & 0 = 0 Inverso aditivoA ^ A = 0
9
www.microse.cic.ipn.mx 9 Relaciones entre operaciones Leyes de DeMorgan Expresa & en términos de |, y viceversa A|B = ~(~A & ~B) A o B son verdad si ni A ni B son falsos A & B = ~(~A | ~B) A y B son verdad si A y B no son falsos Or exclusivo utilizando OR inclusivo A^B = (~A & B) | (A & ~B) Exactamente uno A o B es verdadero A^B = (A|B) & ~(A&B) Ya sea que A sea verdadero, o B sea verdadero, pero no ambos
10
www.microse.cic.ipn.mx 10 Álgebras Booleanas generales Operaciones sobre vectores de bits Las operaciones son aplicadas bit por bit Todas las propiedades del álgebra Boolena se aplican 01101001 & 01010101 01000001 01101001 | 01010101 01111101 01101001 ^ 01010101 00111100 ~ 01010101 10101010 01000001011111010011110010101010
11
www.microse.cic.ipn.mx 11 Representación y manipulación de conjuntos Representación El vector de bits con ancho w representa un subconjunto {0, …,w-1} a j = 1 si j A 01101001 76543210 {0, 3, 5, 6} 01010101 76543210{0, 2, 4, 6} Operaciones &Intersección01000001{0, 6} |Unión01111101{0, 2, 3, 4, 5, 6} ^ Diferencia simétrica00111100{2, 3, 4, 5} ~ Complemento10101010{1, 3, 5, 7}
12
www.microse.cic.ipn.mx 12 Operaciones en C a nivel de bit Las operaciones &, |, ~ y ^ están disponibles en C Se aplica a cualquier tipo de dato “entero” long, int, short, char Se ven los argumentos como vectores de bits Los argumentos se aplican bit a bit Ejemplos (dato tipo char) ~0x41 0xBE ~01000001 2 10111110 2 ~0x00 0xFF ~00000000 2 11111111 2 0x69 & 0x55 0x41 01101001 2 & 01010101 2 1000001 2 0x69 | 0x55 0x7D 01101001 2 | 01010101 2 01111101 2
13
www.microse.cic.ipn.mx 13 Contraste: Operaciones lógicas en C Contraste para operadores lógicos &&, ||, ! El 0 se ve como “falso” Cualquier cosa no cero es “verdadero” Siempre regresa 0 ó 1 Terminación temprana Ejemplos !0x41 0x00 !0x00 0x01 !!0x41 0x01 0x69 && 0x55 0x01 0x69 || 0x55 0x01 p && *p (evita el acceso a apuntador nulo)
14
www.microse.cic.ipn.mx 14 Desplazamiento de bits Desplazamiento a la izquierda x << y Desplaza un vector x de bits y posiciones a la izquierda Elimina los bits extras de la izquierda Llena con 0’s a la derecha Desplazamiento a la derecha x >> y Desplaza un vector x de bits y posiciones a la derecha Elimina los bits extras a la derecha Desplazamiento lógico Llena con 0’s a la izquierda Desplazamiento aritmético Replica el bit más significativo a la derecha Es útil en la representación de enteros con complemento a dos 01100010 Argumento x 00010000<< 3 00011000 Log. >> 2 00011000 Aritm. >> 2 00010000 00011000 10100010 Argumento x 00010000<< 3 00101000 Log. >> 2 11101000 Aritm. >> 2 00010000 00101000 11101000 00010000 00101000 11101000
15
www.microse.cic.ipn.mx 15 Resumen Algebra Booleana es la base de matemática computacional La forma básica codifica “falso” como 0 y “verdadero” como 1 Forma general como operaciones bit a bit en C Buena para representación y manipulación de conjuntos
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.