Práctica 1: Representación de números

Documentos relacionados
Representación de datos y aritmética básica en sistemas digitales

Aritmética de Enteros

Computación I Representación Interna Curso 2011

ESTRUCTURA Y TECNOLOGÍA DE COMPUTADORES I CAPÍTULO III ARITMÉTICA Y CODIFICACIÓN


TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

Ejercicios Representación de la información

Representación de la Información.... en los Computadores

5.2. Sistemas de codificación en binario

Representación de Números Reales

Tema 2. Sistemas de representación de la información

Representación de números enteros: el convenio exceso Z

Guía número 1. Métodos numéricos. Universidad de san buenaventura de Cali

Organización de Computadoras Apunte 2: Sistemas de Numeración: Punto Flotante

Universidad Rey Juan Carlos HOJA DE PROBLEMAS TEMA 3: REPRESENTACIÓN DE LA INFORMACIÓN

en coma flotante Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso

Lección 1. Representación de números

Aritmética del computador. Departamento de Arquitectura de Computadores

Representación de la Información

Introducción a los Sistemas Digitales. Conceptos básicos de matemática aplicada a los sistemas digitales

Aritmética finita y análisis de error

Numeración Maya. Numeración indo-arábiga. Sistemas de Numeración Posicional. Conversión de una base cualquiera a base 10 = 4! !

La velocidad no lleva a ninguna parte si no se va en la dirección correcta. Proverbio Americano. Punto Flotante

SISTEMAS DE NUMERACION

TEMA 1 LOS NÚMEROS REALES

SISTEMAS DE NUMERACIÓN

Organización de Computadoras. Clase 2

ARITMÉTICA EN PUNTO FLOTANTE

Representación de números en binario

Sistemas Numéricos Cambios de Base Errores

5 centenas + 2 decenas + 8 unidades, es decir: = 528

Representación de números enteros: el convenio complemento a uno

Organización del Computador. Prof. Angela Di Serio

Tema 4: Sistemas de Numeración. Codificación Binaria. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

Métodos Numéricos: los números reales y su representación

Sistemas de Numeración Operaciones - Códigos

TEMA 1: NÚMEROS REALES

Lección 1: Números reales

TEMA 1 Representación de la información

1.1 Sistema de numeración binario

TÉCNICAS DIGITALES SISTEMAS NUMÉRICOS

MatemáticaDiscreta&Lógica 1

Informática Básica: Representación de la información

TEMA 2 REPRESENTACIÓN BINARIA

Sistemas Numéricos y Códigos Binarios

Datos y tipos de datos

UT01 03 Sistemas de codificación

a octal A B C D E F

Aritmética Binaria. Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid

Estructura de Computadores

TEMA III: OPERACIONES CON LOS DATOS

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

Cuando se enumeran todos los elementos que componen el conjunto. A = { 1, 2, 3, 4, 5 }

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Número, algoritmo y errores

TEMA 2. Números racionales. Teoría. Matemáticas

NÚMEROS REALES. a de dos números enteros: a, y b Z con b 0. Con un número entero o con una expresión decimal exacta o no exacta y periódica.

SISTEMAS NUMERICOS Y ERRORES

Representación de la información

Capítulo 2 REPRESENTACIÓN DE LOS DATOS. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

SISTEMAS DE NUMERACIÓN CON REPRESENTACIÓN POSICIONAL DE LOS NÚMEROS

Representación de números enteros: el convenio complemento a dos

Programación y Métodos Numéricos Errores de de redondeo en en la la representación de de números reales: CODIFICACIÓN DE NÚMEROS REALES

Propiedades de las Funciones Exponenciales

Tema 2. La Información y su representación

Lección 2: Notación exponencial

Solución: exp Febrero, primera semana. Paso 1º: Cálculo del campo exponente. Según el apartado a) del primer corolario: 53.

Universidad Nacional de Ingeniería Facultad de Ciencias Introducción a la Ciencia de la Computación Sistemas de Numeros Prof: J.

LECCIÓN 1. CIRCUITOS ARITMÉTICOS DE SUMA Y RESTA DE ENTEROS

Guía práctica de estudio 06: Lenguaje binario

Computación I Representación Interna Curso 2011

by Tim Tran:

PLAN DE REFUERZO NOMBRE ESTUDIANTE: Nº

Tema 3 POTENCIAS Y NOTACIÓN CIENTÍFICA 1. Notación científica. Mr: Gonzalo Flores C

Datos y tipos de datos

Buceando en los MCUs Freescale...

EIE SISTEMAS DIGITALES Tema 2: Sistemas de Numeración, Operaciones y Códigos

Representación de Datos. Representación de datos numéricos. Representación de datos caracteres. Representación de otros tipos de datos

TEMA II: SISTEMAS DE NUMERACIÓN

ELO311 Estructuras de Computadores Digitales. Números

Guía práctica de estudio 06: Lenguaje binario

Sebastián García Galán

1. Informática e información. 2. Sistemas de numeración. 3. Sistema binario, operaciones aritméticas en binario, 4. Sistemas octal y hexadecimal. 5.

Enteros (Z):..., -3, -2, -1, 0, 1, 2, 3,... Números enteros (positivos o negativos), sin decimales. Incluye a los naturales.

TEMA 1. Números Reales. Teoría. Matemáticas

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

2. Representación de números 1

Sistemas de Numeración. Códigos

Ámbito Científico-Tecnológico Módulo IV Bloque 2 Unidad 1 Tan real como la vida misma

Curso de GNU Octave y L A TEXpara el apoyo a la investigación en ingeniería

Cifras significativas

Introducción a la Informática

CONJUNTO DE LOS NÚMEROS NATURALES

Transcripción:

Práctica 1: Representación de números Organización del Computador I DC - UBA 2do. Cuatimestre 2014

Menú del día Hoy vamos a ver: Representación de numeros Aritmética en otras bases (no decimales) Cambios de bases Representaciones habituales de numeros enteros Representaciones habituales de numeros reales

Cómo se representan las cosas? Cada concepto se puede representar de varias maneras. Por ejemplo: el vigésimo elemento de los números naturales sin el cero. Si se escribiese en la antigua Roma hubiese sido: XX Si se escribiese acá mismo, sería: 20 Aunque... también podría haber sido: 10100

Sistemas no posicionales: Los porotos Para representar un número natural podemos usar: En este caso, representan el número 27. Importa el orden de los porotos?

Sistemas no posicionales: Tanteando en el truco Cuando jugamos al truco, anotamos los puntos de una manera particular: Aquí vemos que un equipo tiene 11 puntos y el otro 6. Importa el orden de los palitos? Sólo los juntamos para contar más rápido...

Sistemas posicionales: Sistema decimal Un sistema decimal utiliza un conjunto que tiene 10 símbolos. Usualmente utilizamos estos: Qué número representa la siguiente tira de símbolos? 478 Podría ser 4 + 7 + 8 = diecinueve?

Qué es una base? El sistema decimal utiliza un conjunto de 10 símbolos para representar los números. Así, en cada numeral, la posición de cada símbolo está relacionada con una potencia de 10. Y si en vez de diez símbolos tuviéramos otra cantidad? A esa cantidad la llamamos base

Representaciones e interpretaciones de números. Qué números pueden representar las siguientes cadenas? 10 478 2011 ORGA1 Dada la representación de un número, puedo saber qué base se está utilizando?

Bases. En base 2, usamos los símbolos 0 y 1 y escribimos los naturales: 0, 1, 10, 11, 100, 101, 110... En base 3, usamos los símbolos 0, 1 y 2 y escribimos los naturales: 0, 1, 2, 10, 11, 12, 20......y así... Bases más comunes Base Símbolos usados 2 (binario) 0, 1 8 (octal) 0, 1, 2, 3, 4, 5, 6, 7 10 (decimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 16 (hexadecimal) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Es posible cambiar un número de una base a otra? Cómo escribirían un programa que lo haga?

Cambios de bases: Teorema de la división. Teorema Sean a Z y b N. Existen q, r Z con 0 r < b tales que a = b q + r Además, q y r son únicos. Ejercitación Escribir los siguientes números en binario, octal y hexadecimal. diez quinientos doce

Sumando... En decimal En base 3 8 4 5 2 1 2 + 3 4 2 + 1 0 1 1 1 8 7 1 0 2 0

Multiplicando... En base 3 1 2 2 1 1 2 1 0 1-1 0 2 2

Tiras de símbolos Si sólo podemos escribir tiras de símbolos de longitud fija: cuántos números podemos representar? de qué depende? OJO AL PIOJO! Al operar con precisión fija, podemos tener overflow Ocurre overflow cuando el resultado de una operación necesita una tira de símbolos más grande que la disponible

Hasta aca: números naturales Por ahora sabemos... Leer naturales Escribir naturales Cambiarlos de base Operar con naturales (sumarlos, multiplicarlos) Y qué hacemos con los enteros?

Codificando números enteros en base binaria Sin signo solo sirve para positivos. Signo+Magnitud se usa un bit para indicar el signo Complemento a 2 los positivos se representan igual número negativo n como 2 k + n Exceso m represento n como m + n

Codificando... En base 2, numerales de 4 bits Signo+Magnitud Complemento a 2 Exceso a 15 3 0011 0011 OVERFLOW -2 1010 1110 1101-8 OVERFLOW 1000 0111

Codificando...(con más bits) En base 2, numerales de 8 bits Signo+Magnitud Complemento a 2 Exceso a 15 3 0000 0011 0000 0011 0001 0010-2 1000 0010 1111 1110 0000 1101-8 1000 1000 1111 1000 0000 0111

Codificando...(con más bits) Similitudes entre 4 y 8 bits Signo+Magnitud Complemento a 2 Exceso a 15 3 0000 0011 0000 0011 0001 0010-2 1000 0010 1111 1110 0000 1101-8 1000 1000 1111 1000 0000 0111 Extendiendo la cantidad de bits de presición: Signo+Magnitud: Se extiende con 0 s, pero el bit más significativo se mantiene indicando el signo. Complemento a 2: Se extiende con el valor del bit más significativo. Complemento a m: Se extiende siempre con 0 s.

Resumiendo: Codificando números enteros en numerales binarios Sin Signo Solo sirve para los positivos. numeral número que representa 1111 15 10 1110 14 10 1101 13 10 1100 12 10 1011 11 10 1010 10 10 1001 9 10 1000 8 10 0111 7 10 0110 6 10 0101 5 10 0100 4 10 0011 3 10 0010 2 10 0001 1 10 0000 0 10 Para los numerales de 4 bits.

Resumiendo: Codificando números enteros en numerales binarios Signo+Magnitud El primer bit es el signo, los demás son el significado (la magnitud del número en valor absoluto). numeral número que representa 1111 7 10 1110 6 10 1101 5 10 1100 4 10 1011 3 10 1010 2 10 1001 1 10 1000 0 10 0111 7 10 0110 6 10 0101 5 10 0100 4 10 0011 3 10 0010 2 10 0001 1 10 0000 0 10 Para los numerales de 4 bits.

Resumiendo: Codificando números enteros en numerales binarios Complemento a dos Los numerales que representa positivos son iguales a los anteriores Para los negativos, dado un n negativo se representan escribiendo 2 k + n en notación sin signo cuentas numeral número que representa 2 4 + ( 1) = 15 1111 1 10 2 4 + ( 2) = 14 1110 2 10 2 4 + ( 3) = 13 1101 3 10 2 4 + ( 4) = 12 1100 4 10 2 4 + ( 5) = 11 1011 5 10 2 4 + ( 6) = 10 1010 6 10 2 4 + ( 7) = 9 1001 7 10 2 4 + ( 8) = 8 1000 8 10 0111 7 10 0110 6 10 0101 5 10 0100 4 10 0011 3 10 0010 2 10 0001 1 10 0000 0 10 Para los numerales de 4 bits.

Codificando números enteros en numerales binarios Exceso a m El número n se representa como m + n cuentas numeral número que representa 5 + (10) = 15 1111 10 10 5 + (9) = 14 1110 9 10 5 + (8) = 13 1101 8 10 5 + (7) = 12 1100 7 10 5 + (6) = 11 1011 6 10 5 + (5) = 10 1010 5 10 5 + (4) = 9 1001 4 10 5 + (3) = 8 1000 3 10 5 + (2) = 7 0111 2 10 5 + (1) = 6 0110 1 10 5 + (0) = 5 0101 0 10 5 + ( 1) = 4 0100 1 10 5 + ( 2) = 3 0011 2 10 5 + ( 3) = 2 0010 3 10 5 + ( 4) = 1 0001 4 10 5 + ( 5) = 0 0000 5 10 Para los numerales de 4 bits en exceso 5.

Oooootro tema: Sistema decimal con coma Números enteros la posición de cada símbolo refiere a una potencia de 10 Números fraccionarios pasa lo mismo 10 1 10 0 10 1 10 2 10 3 7 4, 3 1 2 7 10 4 1 3 0, 1 1 0, 01 2 0, 001

En general Si b es la base, utilizamos b símbolos para representar números entre 0 y b 1 interpretamos los numerales como: n (a n a n 1 a 0, a 1 a k+1 a k ) b = a i b i i= k

Ejercicios Expresemos en base 10 (base decimal) (327, 752) 8 (327, 752) 8 = (3 8 2 + 2 8 1 + 7 8 0 + 7 8 1 + 5 8 2 + 2 8 3 ) 10 (327, 752) 8 = (215, 9570313) 10 (10, 001) 2 (10, 001) 2 = (1 2 1 + 0 2 0 + 0 2 1 + 0 2 2 + 1 2 3 ) 10 (10, 001) 2 = (2, 125) 10 (10, 001) 11 (10, 001) 11 = (1 11 1 + 0 11 0 + 0 11 1 + 0 11 2 + 1 11 3 ) 10 (10, 001) 11 = (11, 00075131480090157776) 10

Cambiando de base Cómo hacemos para escribir el (2, 375) 10 en binario? Entonces vamos por partes (2, 375) 10 = (2) 10 + (0, 375) 10 Parte entera: lo visto hasta ahora Parte fraccionaria: qué hacemos?

Un algoritmo Quiero expresar (0, 375) 10 en base 2 1. Multiplico el número por la base 0, 375 2 = 0, 75 2. Multiplico la parte fraccionaria del resultado por la base 0, 75 2 = 1, 5 3. Si el resultado no tiene parte fraccionaria, termino Si no, repito el paso 2 En este caso tengo que repetir el resultado tiene parte fraccionaria 0, 5 2 = 1 Listo! (0, 375) 10 = (0, 011) 2

Ejercicios Expresar (8, 25) 10 en base 4 Expresar (12, 30) 10 en base 2

Representando reales Punto fijo: representa la parte entera y fraccionaria por separado Punto flotante: sigue la idea de notación científica

Punto fijo Para representar números de punto fijo Representamos la parte entera usando alguno de los métodos vistos en la clase pasada sin signo con signo complemento a 2 exceso m Representamos la parte fraccionaria en la base b

Punto Fijo - Ejemplo Defino un sistema de punto fijo: 4 bits para la parte entera, y otros 4 para la fraccionaria Yo decido que el sistema sólo representará reales positivos (codificación sin signo de 4 bits) por lo que la representación de la parte entera no necesita poder expresar signo Arbitrariamente decido que la parte entera se escribe primero Parte entera: Parte fraccionaria: Notación Si escribo 10010001, debe entenderse: Parte entera: 1 0 0 1 Parte fraccionaria: 0 0 0 1

Punto fijo 1. Cuál es el real representable más grande? y el más chico? 00000000 = (0, 0)2 = (0, 0) 10 11111111 = (1111, 1111)2 = (15, 9375) 10 2. Cuál es el mínimo real representable mayor a cero? 00000001 = (0, 0001)2 = (0, 0625) 10 3. Cuál es el máximo real representable menor a uno? 00001111 = (0, 1111) 2 = (0, 9375) 10 4. Muestre un número racional que esté entre el cero y el mínimo real representable mayor a cero. (0, 00001) 2 = (0, 03125) 10 5. Muestre un número no racional que sea menor al máximo representable y mayor al mínimo. Se puede representar?

Underflow Cómo representamos... un número que es más pequeno en módulo que el menor real distinto de cero representable? Recien encontramos uno para nuestro sistema: (0, 00001) 2 No podemos representarlo exactamente Única opción: representarlo como (0) 2 o como (0, 0001) 2 Nos importa? Depende... Errores de redondeo pueden hacer que 0,1 + 0,2 = 0,30000000000000004

Punto flotante Recordemos La mantisa (m) representa un número fraccionario El exponente (e) es a lo cual se debe elevar la base Si b es la base entonces el número representado es m b e Tanto la mantisa como el exponente pueden representarse: con signo sin signo con notación complemento con notación exceso m.

Punto flotante - Ejemplo Defino un sistema de punto flotante: 4 bits para el exponente y otros 3 bits para la mantisa Representación del exponente: signo+magnitud Representará sólo reales positivos por lo que la representación de la mantisa no necesita poder expresar signo. Y otra definición: la interpretación debe ser 0, mantisa 2 exponente es decir tengo un cero impĺıcito. Notación Si escribo 1001001, debe entenderse: Exponente: 1 0 0 1 Mantisa: 0 0 1

Punto flotante - Ejemplo 1. Qué real se codifica con 1110111? (0, 111 10 110 ) 2 = (0, 875 2 6 ) 10 = (0, 013671875) 10 2. Cuál es el mayor real que podemos representar? 0111111 (0, 111 10 111 ) 2 = (0, 875 2 7 ) 10 = (112) 10 3. Dados los reales representados como 0010000 y 0101001, cuál es el mayor? 0010000 = (0, 000 10 010 ) 2 = (0) 10 0101001 = (0, 001 10 101 ) 2 = (0, 125 2 5 ) 10 = (4) 10 4. Todo real representable tiene una única codificación? 0000000 = (0, 000 10 0 ) 2 = (0) 10 0110000 = (0, 000 10 110 ) 2 = (0) 10

Representación Normalizada ejemplo Representación de punto flotante Base 2, Exponente 2 dígitos, exceso a 2 Mantisa de 2 dígitos Normalizado 1. exp\ mant 00 01 10 11 00 0,25 0,3125 0,375 0,4375 01 0,5 0,625 0,75 0,875 10 1 1,25 1,5 1,75 11 2 2,5 3 3,5 0 1 2 3

Representación Normalizada ejemplo Representación de punto flotante Base 2, Exponente 2 dígitos, exceso a 2 Excepción: cuando exponente= 00, se denormaliza y se toma como exponente 1 Mantisa de 2 dígitos Normalizado a 1.,salvo cuando exponente= 00. exp\ mant 00 01 10 11 00 0 0,125 0,25 0,375 01 0,5 0,625 0,75 0,875 10 1 1,25 1,5 1,75 11 2 2,5 3 3,5 0 1 2 3

IEEE 754 - Precisión simple Signo: 1 bit Mantisa: 23 bits (sin signo, ya que hay un bit a tal efecto) Exponente: 8 bits, exceso 127; e min = -126, e max = 127 Exponente (e) Mantisa (f ) Representación Normalizados e min e e max - - - ± 1.f 2 e Ceros e = e min 1 f = 0? 0 Denormalizados e = e min 1 f 0 ± 0.f 2 e min Infinitos e = e max + 1 f = 0 ± NaNs e = e max + 1 f 0 NaN

IEEE 754 Sea el siguiente numeral: Qué número real representa? Signo : 1 (negativo) Signo Exponente Mantisa 1 1000 0010 1111 0... 0 Exponente: (10000010) 2 = (130) 10. La codificación es exceso a 127 de 8 bits. Por lo tanto, el numeral (130) 10 representa el número entero 3. Mantisa: (0, 1111) 2 = 1 2 + 1 4 + 1 8 + 1 16 = (0, 9375) Por lo tanto (dado el 1. ímplicito), el número que representa es: 1, 9375 2 3 = 15, 5

IEEE 754 Sea el siguiente numeral: Qué número real representa? Signo : 1 (negativo) Signo Exponente Mantisa 1 0000 0000 1011 10... 0 Exponente: (00000000) 2 = (0) 10. La codificación es exceso a 127 de 8 bits. Por lo tanto, el numeral (0) 10 representa el número entero 127. Es un caso especial! (e == e min 1) Mantisa: (0, 10111) 2 Es distinto de cero! ( f 0) Por lo tanto se trata de un caso especial. El número que representa es 0, f 2 e min: (0, 10111) 2 2 126 8, 4488656465351914635252938612849 10 39

IEEE 754 Pero cómo convertimos a este formato? 1. Convertir a binario 2. Normalizar 3. Codificar el signo 4. Codificar la mantisa 5. Codificar el exponente

Ejemplo Convirtamos ( 15, 32) 10 al formato IEEE 754 de precisión simple 1. Primero tenemos que expresar el número en binario periodo {}}{ ( 15, 32) 10 = ( 1111, 01 01000111101011100001) 2 2. Ahora tenemos que normalizarlo periodo {}}{ ( 15, 32) 10 = ( 1, 11101 01000111101011100001 10 11 ) 2 3. Próximo paso, llenar la plantilla de la IEEE.

Cómo representamos el exponente? IEEE dice que tenemos que utilizar exceso 127 (11) 2 = (3) 10 entonces lo que necesitamos es pasar a binario el número (127 + 3) 10, o sea (130) 10 (130) 10 = (10000010) 2 Representado en 8 bits, el espacio que tenemos en la plantilla de precisión simple de IEEE Cómo representamos la mantisa? IEEE dice que en precisión simple tenemos 23 bits para la mantisa. Y no nos olvidemos del uno impĺıcito Teníamos nuestro número normalizado ( 1, 11101010001111010111000 }{{} 01... 10 11 ) 2 bits El uno va a ser impĺıcito. Asi que necesitamos los primeros 23 numerales después de la coma

Listo! Tenemos todo lo que necesitamos Signo: 1 Exponente: 10000010 Mantisa: 11101010001111010111000 La tira de bits que buscábamos es: 11000001011101010001111010111000 donde el marcado en rojo es el bit de la posición cero

Redondeo y Truncamiento Si queremos escribir 101,010011 2 = 5, 296875 10 en punto fijo, con cuatro bits Truncar es tomar los cuatro bits fraccionarios más significativos 101,0100 2 = 5, 25 10 Redondear es cambiar el último de acuerdo al siguiente si es cero, dejo el que estaba; si es uno, lo cambio 101,0101 2 = 5, 31225 10 Redondear suele resultar en una representación más cercana que truncar

Que vimos hoy Diferencia entre número y numeral Cómo interpretar números en distintas bases de numeración posicional Cómo expresar un número en distintas bases Precisión fija, overflow y underflow Distintas formas de representación de enteros con bits Distintas formas de representación de reales con bits Con lo visto hoy pueden hacer la práctica 1.

Bibliografía Linda Null - Julia Lobur.. Es sentials of Computer Organization and Architecture. Jones and Bartlett Publishers, Inc. Capítulo 2 Yates, Randy. Fixed-point arithmetic: An introduction. Digital Signal Labs 81.83 (2009): 198. http : //personal.atl.bellsouth.net/y/a/yatesc/fp.pdf Conversor IEEE 754 http : //www.zator.com/cpp/e 2 2 4a1.htm [Opcional] What Every Computer Scientist Should Know About Floating-Point Arithmetic http : //docs.sun.com/source/806 3568/ncg goldberg.html(1991)