Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones...

53
Cap 1: Operaciones en Datos Cap 1: Operaciones en Datos Prof: J. Solano 2018-I Universidad Nacional de Ingeniería Facultad de Ciencias Cálculo Numérico 1 IF321

Transcript of Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones...

Page 1: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cap 1: Operaciones en DatosCap 1: Operaciones en Datos

Prof: J. Solano2018-I

Universidad Nacional de IngenieríaFacultad de Ciencias

Cálculo Numérico 1IF321

Page 2: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Objetivos

Después de estudiar este capítulo el estudiante será capaz de:

2

Listar las tres categorías de operaciones que se realizan en los datos.

Realizar operaciones lógicas binarias y unitarias en los patrones de bits.

Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Realizar sumas y restas de números enteros cuando están almacenados en formato de complemento a dos.

Realizar sumas y restas de números enteros cuando se guardan en formato signo y magnitud.

Realizar operaciones de suma y resta en reales almacenados en formato de punto flotante.

Page 3: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

OPERACIONES LÓGICASOPERACIONES LÓGICAS

En el capítulo anterior vimos que los datos son En el capítulo anterior vimos que los datos son almacenados en el computador como patrones de bits. almacenados en el computador como patrones de bits. Operaciones lógicasOperaciones lógicas se refieren a las operaciones que se refieren a las operaciones que aplican la misma operación básica sobre bits aplican la misma operación básica sobre bits individuales de un patrón, o en dos bits individuales de un patrón, o en dos bits correspondientes en dos patrones. Esto significa que correspondientes en dos patrones. Esto significa que podemos definir las operaciones lógicas a nivel de bits podemos definir las operaciones lógicas a nivel de bits ((bitbit levellevel) y a nivel de patrones () y a nivel de patrones (pattern levelpattern level). ). Una operación lógica a nivel de patrones son n Una operación lógica a nivel de patrones son n operaciones lógicas, del mismo tipo, a nivel de bits, operaciones lógicas, del mismo tipo, a nivel de bits, donde n es el número de bits en el patrón.donde n es el número de bits en el patrón.

3

Page 4: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Algebra Booleana es la base de los circuitos lógicos de computadores y muchos dispositivos electrónicos

Operaciones lógicas a nivel de bits

Un bit puede tomar dos valores: 0 ó 1. Solo interpretamos el 0 como el valor false (falso) y 1 como el valor true (verdadero), y podemos aplicar las operaciones definidas en el algebra booleana para manipular bits. Boolean algebra (algebra boolena), llamada así en honor de George Boole, se convirtió en un campo especial de la Matemática llamado Lógica. Una gran aplicación del algebra booleana está en la construcción de circuitos lógicos en computadores. En esta sección solo discutiremos cuatro operaciones a nivel de bits, que son usadas para manipular bits: NOT, AND, OR, y XOR.

4

Page 5: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 5

Page 6: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Para x = 0 o 1 x AND 0 → 0 0 AND x → 0Para x = 0 o 1 x AND 0 → 0 0 AND x → 0

NOTNOTEl operador NOT es un operador unitario: toma solo un El operador NOT es un operador unitario: toma solo un input. El bit ouput es el complemento del input.input. El bit ouput es el complemento del input.

ANDANDEl operador AND es un operador binario: toma dos El operador AND es un operador binario: toma dos inputs. El bit ouput es 1 si ambos inputs son 1s y 0 en inputs. El bit ouput es 1 si ambos inputs son 1s y 0 en los otros tres casos.los otros tres casos.

6

Page 7: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Para x = 0 óPara x = 0 ó 1 x OR 1 → 1 1 OR x → 1 1 x OR 1 → 1 1 OR x → 1

OROREl operador OR es un operador binario: toma dos El operador OR es un operador binario: toma dos inputs. El bit ouput es 0 si ambos inputs son 0s y es 1 inputs. El bit ouput es 0 si ambos inputs son 0s y es 1 en los otros tres casos.en los otros tres casos.

7

XORXOREl operador XOR es un operador binario como el El operador XOR es un operador binario como el operador OR con solo una diferencia: el bit ouput es 0 operador OR con solo una diferencia: el bit ouput es 0 si ambos inputs son 1s.si ambos inputs son 1s.

Para x = 0 ó 1 Para x = 0 ó 1 x XOR 1 → NOT x 1 XOR x → NOT xx XOR 1 → NOT x 1 XOR x → NOT x

Page 8: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Ejemplo 1

En inglés se usa la conjunción “or” a veces para referirse a inclusive-or, y otras veces para exclusive-or.

a. The sentence “I would like to have a car or a house” uses “or” in the inclusive sense—I would like to have a car, a house or both.

b. The sentence “Today is either Monday or Tuesday” uses “or” in the exclusive sense—today is either Monday or Tuesday, but it cannot be both.

8

Page 9: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

El operador XOR no es un operador nuevo. Siempre podemos simularlo usando los otros tres operadores. Las siguientes dos operaciones son equivalentes

La equivalencia puede probarse si hacemos la tabla de verdad para ambos

9

x XOR y ↔ [x AND (NOT y)] OR [(NOT x) AND y]

Ejemplo 2

Page 10: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 10

Page 11: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 11

Page 12: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 12

Page 13: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 13

Page 14: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 14

Page 15: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 15

Page 16: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 16

Page 17: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 17

Page 18: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 18

Page 19: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

OPERACIONES SHIFT (DESPLAZAMIENTO)OPERACIONES SHIFT (DESPLAZAMIENTO)

Operaciones ShiftOperaciones Shift mueve los bits en un patrón, cambiando la mueve los bits en un patrón, cambiando la posición de los bits. Ellos pueden mover bits a la izquierda o a posición de los bits. Ellos pueden mover bits a la izquierda o a la derecha. Podemos dividir operaciones shift en dos la derecha. Podemos dividir operaciones shift en dos categorías: categorías: operaciones shift lógicas y operaciones shift operaciones shift lógicas y operaciones shift aritméticasaritméticas..

19

Page 20: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Operaciones shift lógicas

Una operación shift lógica se aplica a un patrón que no representa un número con signo. La razón es que estas operaciones shift pueden cambiar el signo del número que se define por el bit más a la izquierda en el patrón. Se distinguen dos tipos de operaciones shift lógicas, como se describe a continuación:

Shift lógico

Shift circular lógico (Rotar)

20

Page 21: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 21

Page 22: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 22

Page 23: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 23

Page 24: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 24

Page 25: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 25

Page 26: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 26

Page 27: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 27

Page 28: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 28

Page 29: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 29

Page 30: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

OPERACIONES ARITMÉTICASOPERACIONES ARITMÉTICAS

Operaciones aritméticas implican sumar, restar, multiplicar y Operaciones aritméticas implican sumar, restar, multiplicar y dividir. Podemos aplicar estas operaciones a los números dividir. Podemos aplicar estas operaciones a los números enteros y a los números de punto flotante.enteros y a los números de punto flotante.

30

Page 31: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Operaciones aritméticas en enteros

Todas las operaciones aritméticas como suma, resta, multiplicación y división se puede aplicar a enteros. A pesar que la multiplicación (división) de enteros puede ser implementada usándose suma (resta) repetida, el procedimiento no es eficiente. Hay procedimientos más eficientes para la multiplicación y división, como procedimientos de cabina (Booth procedures), pero estos están fuera del alcance de este curso. Por esta razón, sólo discutimos aquí sumas y restas de números enteros.

31

Page 32: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 32

Page 33: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 33

Page 34: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 34

Page 35: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 35

Page 36: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 36

Page 37: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 37

Page 38: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 38

Page 39: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 39

Page 40: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Cuando hacemos operaciones aritméticas en númerosCuando hacemos operaciones aritméticas en númerosen un computador, debemos recordar que cadaen un computador, debemos recordar que cadanúmero y el resultado deben estar en el rangonúmero y el resultado deben estar en el rangodefinido por la ubicación de bits en memoria.definido por la ubicación de bits en memoria.

40

Page 41: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Enteros en formato signo y magnitud

Suma y resta para enteros en representación signo y magnitud es un poco compleja. Tenemos cuatro combinaciones de signos (dos signos, para cada uno de dos valores) para suma y cuatro diferentes condiciones para resta. Esto significa que debemos considerar ocho situaciones diferentes. Sin embargo, si verificamos primero los signos, podemos reducir esos casos.

41

Page 42: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 42

Page 43: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 43

Page 44: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 44

Page 45: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Operaciones aritméticas en reales

Todas las operaciones aritméticas como suma, resta, multiplicación y división se pueden aplicar a reales almacenados en formato punto flotante. Multiplicación de dos reales envuelve multiplicación de dos enteros en representación signo y magnitud. División de dos reales envuelve división de dos enteros en representación signo y magnitud. Como no discutimos multiplicación ni división de enteros en representación signo y magnitud, no discutiremos aquí multiplicación ni división de reales. Solo mostraremos sumas y restas de reales.

45

Page 46: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321

Suma y resta de reales

Suma y resta de números reales almacenados en punto flotante se reduce a suma y resta de dos enteros almacenados en signo y magnitud (combinación de signo y mantisa) después del alineamiento del punto decimal.

46

Page 47: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 47

Page 48: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 48

Page 49: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 49

Page 50: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 50

Page 51: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 51

Page 52: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 52

Page 53: Cap 1: Operaciones en Datos · Realizar operaciones lógicas binarias y unitarias en los patrones de bits. Distinguir entre las operaciones de cambio (shift) lógicas y aritméticas.

Cálculo Numérico 1 - IF321 53