Tipo de datos. Montse Bóo Cepeda. Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain.

Documentos relacionados
Fundamentos de Informática 1er curso de ingeniería Industrial. Tema 2. Datos. Tema 2. Datos

TEMA 2 REPRESENTACIÓN BINARIA

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

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

Representación de Números

Computación I Representación Interna Curso 2011

Representación de la Información

Computación I Representación Interna Curso 2011

Sistemas de Numeración

Arquitectura de Computadoras

Organización de Computadoras. Clase 3

Ingeniería Técnica en Informática de Sistema E.T.S.I. Informática Universidad de Sevilla

Práctica 1 - Representación de la información

Computación 1. Representación en Punto Flotante

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

APUNTES DOCENTES ASIGNATURA: ANALISIS NUMERICO ASIGNATURA: ANALISIS NUMERICO UNIDADES TECNOLÓGICAS DE SANTANDER

Aritmetica del Computador

Estructura de Computadores Tema 2. Representación de la información

Tema 1: Sistemas de numeración

Tipos de Datos y Representaciones. Circuitos Digitales, 2º de Ingeniero de Telecomunicación. EITE ULPGC.

+- S x B +-E. Este estándar presupone una representación normalizada. Es decir, los números a representar obedecen a la siguiente forma:

Tema 2: Sistemas de numeración

Aritmética de Enteros y

Agenda. 0 Operaciones aritméticas 0 ASCII 0 UTF-8 0 Código Gray. 0 Números de punto flotante

CODIFICACIÓN DE LA FUENTE

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

ELECTRÓNICA DIGITAL TEMA 1

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

Universidad de San Buenaventura - Facultad de Ingeniería

1.4.3 Errores de redondeo y la aritmética finita de las computadoras

Estructura de Computadores

Números. un elemento perteneciente al conjunto D b. de los dígitos del sistema. D b

UNIDAD 3 Representación de la Información

Computación 1. Representación Interna de Números

Sistemas de Numeración. I semestre 2011

OPEN KNOWLEDGE CURSO DE METODOS NUMERICOS

Tema 2 Representación de la información

Computación Conociendo la herramienta de cálculo

Representación de números binarios en punto fijo y punto flotante.

Notas de Teórico. Representación Interna de Datos

Representación de Números Reales

Técnicas y Dispositivos Digitales 1. UNIDAD 3 Códigos Binarios

Representación de números fraccionarios: Punto Flotante

Robótica Inteligente Arquitectura de Computadoras

Tema 2: Sistemas de numeración

Ejercicios Representación de la información

Representación de la Información

5.2. Sistemas de codificación en binario

FUNCIONAMIENTO DIGITAL DE UN SISTEMA. EL SISTEMA BINARIO. Sistema Digital. Fr. Casares. Sistema Digital. Sistema Digital

Organización del Computador 1. Representación binaria de Números Reales Sistemas de Representación

Sistemas Numéricos Cambios de Base Errores

TEMA 1 Representación de la información

TEMA 2. CODIFICACIÓN DE LA INFORMACIÓN

Introducción al análisis numérico

Representación de Números Reales. Organización del Computador 1 Verano 2016

2. Desde los transistores hasta los Circuitos Integrados 3Sit 3. Sistemas de representación numérica éi 4. Números con signo

REPRESENTACION DE LA INFORMACION

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

Instituto Tecnológico de Morelia

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

Unidad I Sistemas Digitales

Representación digital de la información

Unidades Aritméticas. Full Adder de un Bit. Sumador/Restador. Full Adder de 32 Bits. Carry Lookahead de 4 Bits. Suma Rápida con Carry Lookahead.

Contenido. Introducción a los Computadores Conceptos básicos. Sistema de numeración CNM-130

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

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

Sistemas Numéricos. Introducción n a los Sistemas Lógicos y Digitales 2009

La información y su representación

Informática I. Bases de Numeración. Alejandro Furfaro

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

Computación Tercer Año

Organización del Computador 1. Representación binaria de Números Reales Sistemas de Representación

Realizar la siguiente suma y expresar el resultado en hexadecimal: Teniendo los 3 valores expresados en la misma base, podemos realizar la suma:

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

APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS Y CARACTERES

a octal A B C D E F

Tema 2: Sistemas y códigos numéricos

Bitácoras de password red de datos.

Estructura de Computadores

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

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

Aritmética de Enteros

Lección 5. Punto flotante

Computación 1. Punto Flotante y Errores

Computadora MA2008. Análisis Numérico: Artimética de una. Computadora. Computación / Matemáticas. Intro. Idea. IEEE estándar. Errores.

TEMA III: OPERACIONES CON LOS DATOS

UNIVERSIDAD DE CORDOBA ESTRUCTURA DE COMPUTADORAS UNIDAD III

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

Organización de Computadoras Apunte 1: Sistemas de Numeración: Sistemas Enteros y Punto Fijo

Algoritmos Multiplicación División

Organización de Computadoras. Clase 2

La capa de Aplicación

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

Cursada Segundo Cuatrimestre 2017 Guía de Trabajos Prácticos Nro. 2

TEMA V SISTEMAS DE NUMERACIÓN

Cursada Primer Semestre 2015 Guía de Trabajos Prácticos Nro. 2

Sistemas Digitales. Pablo Abad Pablo Prieto Torralbo. Tema 2. Números Naturales y Enteros. Departamento de Ingeniería Informá2ca y Electrónica

{, }, #, $, %, &,,, +,,/,(, ), },!,?, [, ]

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

SISTEMAS DIGITALES. Margarita Pérez Castellanos

Transcripción:

Tipo de datos Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain.

Estructura del curso 1. Evolución y caracterización de los computadores. 2. Arquitectura del MIPS: Introducción. 3. Tipo de datos. 4. El repertorio de instrucciones. 5. Aritmética del computador. 6. El camino de datos. 7. Sección de control. 8. El camino de datos multiciclo. 9. Sección de control multiciclo. 10. Entrada/Salida (I/O). 2

Esquema de contenidos 1. Clasificación de la información 2. Punto fijo Representación de los datos. 3. Punto flotante Representación de los datos. 3

Representación de los datos Factores a tener en cuenta: Tipo de números a representar (entero, real,..) El rango posible de valores. Precisión Coste hardware Formato: Punto fijo: Rango limitado de valores Requerimientos hardware simples Punto flotante: Mayor rango de valores Procesamiento más costoso 4

Punto fijo

Representación de enteros Representación de números en cualquier base: Sistema de numeración posicional: cada número viene definido por una cadena de dígitos, donde cada uno de ellos está afectado por un factor de escala. Valor del i-ésimo dígito d: d x Base i Ejemplos: (176) diez =1 x 10 2 + 7 x 10 1 + 6 x 10 0 = 1 x 100 + 7 x 10 + 6 (1011) = (1 x dos 23 ) + (0 x 2 2 ) + (1x 2 1 ) + (1x 2 0 ) = (11) diez 6

Representación de enteros : Sistema binario Base: 2 Dígitos: 0 y 1 (denominados bits) Rango de valores representable con n bits: [0, 2 n -1] Ejemplo: Representación palabra 32 bits: 31 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BIT MAS SIGNIFICATIVO (MSB) BIT MENOS SIGNIFICATIVO (LSB) 7

Representación de enteros : Sistema hexadecimal Base: 16 Dígitos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F HEXADECIMAL BINARIO HEXADECIMAL BINARIO 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110 7 0111 F 1111 8

Números con signo: Signo magnitud Signo y magnitud MSB representa el signo del número, el resto de los bits representan el valor absoluto en binario natural Ejemplo (palabras de 8 bits): 0 1 1 1 1 1 1 1 = (127) diez Rango [-(2 n-1-1),(2 n-1-1)] 1 1 1 1 1 1 1 1 = (-127) diez Hay dos formas de representar el 0: 0 0 0 0 0 0 0 0 = (0) diez 1 0 0 0 0 0 0 0 = (-0) diez En algunas de las primeras computadoras binarias (IBM 7090 ) 9

Números con signo: Complemento a uno Complemento a uno Los positivos se representan por su valor absoluto en binario natural, los negativos se representan por el complemento a 1 Ejemplo (palabras de 8 bits): 0 0 0 0 0 0 1 0 = (2) diez Rango [-(2 n-1-1),(2 n-1-1)] 1 1 1 1 1 1 0 1 = (-2) diez Hay dos formas de representar el 0: 0 0 0 0 0 0 0 0 = (0) diez 1 1 1 1 1 1 1 1 = (-0) diez Común en las computadoras antiguas (PDP-1 y UNIVAC 1100/2200) 10

Números con signo: Complemento a dos Complemento a dos Los positivos se representan por su valor absoluto en binario natural y los negativos por su complemento a dos. Ejemplo (palabras de 8 bits): 0 0 0 0 0 0 1 0 = (2) diez Rango [-2 n-1,(2 n-1-1)] 1 1 1 1 1 1 10 = (-2) diez El 0 tiene una representación única 0 0 0 0 0 0 0 0 = (0) diez Ventajas: Comodidad para operar: la suma y resta no necesita realizar ajustes para obtener el resultado de la operación el cero tiene una única representación 11

Números con signo: Complemento a dos Conversión de complemento a dos a decimal: Basta con tener en cuenta el papel del bit de signo. Para 32 bits: d 31 x -2 31 + d 30 x 2 30 +... + d 2 x 2 2 + d 1 x 2 1 + d 0 x 2 0 Ejemplo 1111 1111 1111 1111 1111 1111 1111 1100 dos = 1x-2 31 +1x2 30 +1x2 29 +... +1x2 2 +0x2 1 +0x2 0 = -2 31 + 2 30 + 2 29 +... + 2 2 + 0 + 0 = -2,147,483,648 diez + 2,147,483,644 diez =-4 diez 12

Números con signo: Complemento a dos 0000... 0000 0000 0000 0000 dos = 0 diez 0000... 0000 0000 0000 0001 dos = 1 diez 0000... 0000 0000 0000 0010 dos = 2 diez... 0111... 1111 1111 1111 1101 dos = 2,147,483,645 diez 0111... 1111 1111 1111 1110 dos = 2,147,483,646 diez 0111... 1111 1111 1111 1111 dos = 2,147,483,647 diez 1000... 0000 0000 0000 0000 dos = 2,147,483,648 diez 1000... 0000 0000 0000 0001 dos = 2,147,483,647 diez 1000... 0000 0000 0000 0010 dos = 2,147,483,646 diez... 1111... 1111 1111 1111 1101 dos = 3 diez 1111... 1111 1111 1111 1110 dos = 2 diez 1111... 1111 1111 1111 1111 dos = 1 diez 13

Números con signo: Complemento a dos Negación de un número binario en complemento a dos: invertir todos los bits y sumar una unidad (hacer su C2). Representación de un número de N bits con un número mayor de bits: EXTENSION DE SIGNO. Ejemplo, extensión del número -4 diez de 16 bits a 32 bits MSB 1111 1111 1111 1100 dos 1111 1111 1111 1111 1111 1111 1111 1100 dos 16-bit 32-bit 14

15 Representación de enteros -1-0 15 1111-2 -1 14 1110-3 -2 13 1101-4 -3 12 1100-5 -4 11 1011-6 -5 10 1010-7 -6 9 1001-8 -7 8 1000 7 7 7 0111 6 6 6 0110 5 5 5 0101 4 4 4 0100 3 3 3 0011 2 2 2 0010 1 1 1 0001 0 0 0 0000 C-2 C-1 SIN SIGNO BINARIO

Representación de reales en punto fijo Se implementa aplicando el sistema posicional también a las potencias negativas de la base Valor del i-ésimo dígito d: d x Base i Ejemplos: (12.5) diez = 1 x 10 1 + 2 x 10 0 + 5 x 10-1 = 10 + 2 + 0.5 (101.11) dos = 1 x 2 2 + 0 x 2 1 + 1 x 2 0 + 1 x 2-1 + 1 x 2-2 = 4 + 0 + 1 + 0.5 + 0.25 = (5.75) diez 16

Codificación de texto ASCII Antiguo, 7 bits 128 caracteres Extendido por IBM a 8 bits 256 caracteres 17

18 ASCII 127 (del) 111 o 95 _ 79 O 63? 47 / 31 (us) 15 (si) 126 ~ 110 n 94 ^ 78 N 62 > 46. 30 (rs) 14 (so) 125 } 109 m 93 ] 77 M 61 = 45-29 (gs) 13 (cr) 124 108 l 92 \ 76 L 60 < 44, 28 (fs) 12 (np) 123 { 107 k 91 [ 75 K 59 ; 43 + 27 (esc) 11 (vt) 122 z 106 j 90 Z 74 J 58 : 42 * 26 (sub) 10 (nl) 121 y 105 i 89 Y 73 I 57 9 41 ) 25 (em) 9 (ht) 120 x 104 h 88 X 72 H 56 8 40 ( 24 (can) 8 (bs) 119 w 103 g 87 W 71 G 55 7 39 ' 23 (etb) 7 (bel) 118 v 102 f 86 V 70 F 54 6 38 & 22 (syn) 6 (ack) 117 u 101 e 85 U 69 E 53 5 37 % 21 (nak) 5 (enq) 116 t 100 d 84 T 68 D 52 4 36 $ 20 (dc4) 4 (eot) 115 s 99 c 83 S 67 C 51 3 35 # 19 (dc3) 3 (etx) 114 r 98 b 82 R 66 B 50 2 34 " 18 (dc2) 2 (stx) 113 q 97 a 81 Q 65 A 49 1 33! 17 (dc1) 1 (soh) 112 p 96 ` 80 P 64 @ 48 0 32 (sp) 16 (dle) 0 (nul)

Punto flotante (PF)

Rango de valores Qué se puede representar con n bits: Enteros sin signo: 0 a 2 n -1 Enteros con signo: -2 (n-1) a 2 (n-1) -1 Y los otros números? Números demasiado grandes? 3,155,760,000 10 (3.15576 10 x 10 9 ) Números demasiado pequeños? 0.00000001 10 (1.0 10 x 10-8 ) Si tenemos n bits, cuántos destinamos a la parte entera y a la parte decimal? xxxxxxxxxxxxxxxxxxx.yyyyyyyyyyyyyy? 20

Representación en punto flotante Notación científica (decimal) mantisa 6.02 x 10 23 exponente Punto decimal radix (base) mantisa Forma binaria 1.0 dos x 2-1 Exponente Punto binario radix (base) 21

Representación en punto flotante signo Forma binaria mantisa (1) S x M x 2 E Exponente radix (base) Representación basada en: SIGNO MANTISA EXPONENTE 22

Representación en punto flotante Forma binaria normalizada: S 1.xxxxxxxxxx dos * 2 yyyy dos Con 32 bits: 31 30 23 22 S Exponente Mantisa 1 bit 8 bits 23 bits 0 Signo = S (0 positivo, 1 negativo) Mantisa en rango [1,2) = 1.xxxxxxxxxx Exponente: Positivo si el valor absoluto del número es mayor o igual que 1 23

Representación en punto flotante Ejemplos exponente positivo (el valor absoluto del número es mayor o igual que 1) (4) diez = 1.0 x 2 2 (-8) diez = -1.0 x 2 3 Ejemplos exponente negativo (el valor absoluto del número es menor que 1) (0.5) diez = 1.0 x 2-1 (-0.25) diez = -1.0 x 2-2 Rango de valores que se pueden representar: de 2.0 x 10-38 a 2.0 x 10 38 24

Representación en punto flotante Overflow: El número es demasiado grande para almacenar el exponente positivo en 8 bits Underflow: La fracción es demasiado pequeña para almacenar el exponente negativo en 8 bits. Para reducir las posibilidades de overflow/underflow: Uso de 64 bits: (valores entre 2.0 x 10-308 a 2.0 x 10 308 ) S Exponente Mantisa 1 bit 11 bits 20 bits Mantisa (continuación) 32 bits 25

Representación en punto flotante Forma binaria normalizada: S 1.xxxxxxxxxx dos * 2 yyyy dos Precisión simple: con 32 bits S Exponente Mantisa 0 1 bit 8 bits 23 bits Precisión doble: con 64 bits S Exponente Mantisa 1 bit 11 bits 20 bits Mantisa (continuación) 32 bits 26

El estándar IEEE 754 Define formatos estándar para números en punto flotante Hay 2 versiones Simple precisión 32 bits Doble precisión 64 bits Se utiliza en la mayor parte de los computadores modernos 27

El estándar IEEE 754 Precisión simple: 32 bits 1 bit para el signo Si es positivo el bit de signo es 0 Si es negativo el bit de signo es 1 8 bits para el exponente 23 bits para la mantisa 28

El estándar IEEE 754 Precisión simple: LA MANTISA Siempre está en el intervalo [1, 2) Por tanto siempre es de la forma 1.xxxx Así pues, el 1 se sobreentiende y no es necesario almacenarlo La mantisa tiene en realidad 24 bits 1. 23 bits de mantisa 29

El estándar IEEE 754 Precisión simple: El exponente Es un número de 8 bits Toma valores entre -126 y 127 NO se almacena en Complemento a 2 En lugar de ello se codifica en exceso a 127 4 131-2 125-100 27 Hay sólo 254 exponentes posibles y 2 exponentes reservados Exp. -127 0 Exp. 128 255 (-1) S * (1 + Mantisa) * 2 (Exponente - Exceso) 30

El estándar IEEE 754 Precisión simple: Valores especiales Exponente 0 0 255 255 Mantisa 0!=0 0!=0 Valor CERO No Normalizado Infinito NaN (Not a Number) 31

El estándar IEEE 754 Precisión simple: Números no normalizados Caso especial Para números muy próximos a 0 Ya no se asume que la mantisa sea 1.xxx Exponente = 0 Mantisa 0 Ejemplo: 0 00000000 00011... Tiene el valor: 0.00011... x 2-126 (-1) S * (Mantisa) * 2 (1 - Exceso) 32

El estándar IEEE 754 Doble precisión: 64 bits 1 bit para el signo 11 bits para el exponente 52 bits para la mantisa 33

El estándar IEEE 754 Doble precisión: El exponente Es un número de 11 bits Toma valores entre -1022 y 1023 NO se almacena en Complemento a 2 En lugar de ello se codifica en exceso a 1023 4 1027-2 1021-1000 23 Hay sólo 2046 exponentes posibles y 2 exponentes reservados Exp. -1023 0 Exp. 1024 2047 (-1) S * (1 + Mantisa) * 2 (Exponente - Exceso) 34

Algunos ejemplos 0000000000000000000000000000000000000000000000000000000000000000 0011111111110000000000000000000000000000000000000000000000000000 0100000000001000000000000000000000000000000000000000000000000000 0111111111110000000000000000000000000000000000000000000000000000 1111111111110000000000000000000000000000000000000000000000000000 0111111111110000011110000000000000000000000000000000000000000000 0000000000000001011100000010101011100100110100011111101101011110 0 1 3 +infinito -infinito NaN No normalizado 35

Conversión de binario PF a decimal 0 0110 1000 101 0101 0100 0011 0100 0010 Signo: 0 => positivo Exponente: 0110 1000 dos = 104 diez Ajuste exceso: 104-127 = -23 Mantisa: 1 + 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 1x2-5 +... =1+2-1 +2-3 +2-5 +2-7 +2-9 +2-14 +2-15 +2-17 +2-22 = 1.0 + 0.666115 Representa: 1.666115*2-23 ~ 1.986*10-7 36

Conversión de decimal a binario PF Caso sencillo: El denominador es una potencia de 2 (2, 4, 8, 16, etc) Ejemplo: Representación binaria PF de -0.75 (-0.75) diez = (-3/4) diez = (-3/ 2 2 ) diez -11 dos /100 dos = -0.11 dos Normalizado es = -1.1 dos x 2-1 (-1) S x (1 + Mantisa) x 2 (Exponente-127) (-1) 1 x (1 +.100 0000... 0000) x 2 (126-127) 1 0111 1110 100 0000 0000 0000 0000 0000 37

Conversión de decimal a binario PF Caso complejo: El denominador no es una potencia de 2 (2, 4, 8, 16, etc) Pérdida de precisión en la representación Ejemplo: Representación binaria PF de -3.33333... 38

Conversión de decimal a binario PF - 3. 3 3 3 3 3 3 0.33333333 x 2 0.66666666 0.66666666 x 2 1.33333332 0.33333332 x 2 0.66666664-1 1. 0 1 0 1 0 1 0... => - 1.1010101.. x 2 1 1. Mantisa: 101 0101 0101 0101 0101 0101 2. Signo: negativo => 1 3. Exponente: 1+ 127 = 128 diez = 1000 0000 dos 1 1000 0000 101 0101 0101 0101 0101 0101 39

Redondeo El problema del redondeo aparece Al convertir un número decimal a punto flotante Al realizar una operación en punto flotante En muchos casos tenemos bits extra que exceden la longitud de la mantisa Qué hacemos con ellos? 1.00010100010010101000110 x 1.10010000111000000111101= 1.1011000010100110101111111010011000000110101110 Mantisa = 10110000101001101011111 Sobra = 11010011000000110101110 40

Redondeo El estándar IEEE 754 define 4 modos de redondeo 1. Truncamiento El truncamiento es trivial, consiste en ignorar los bits adicionales 2. Redondeo al número par más próximo Es el más complejo 3. Redondeo a +infinito (siempre hacia arriba) 4. Redondeo a infinito (siempre hacia abajo) El redondeo complica la implementación. Es posible que tras redondear haya que volver a normalizar la mantisa y sea necesario un segundo redondeo. 41