Tema2-2011-Representacion de texto y numeros

13
3/28/2011 1 Algoritmos y Estructura de Datos I Tema 2 – Representación de texto y números 1 2 Agenda Representación de la información Texto Números Sonidos Imágenes Representación de la Información La información se representa en base a cadenas de símbolos. Las palabras y los números se representan en base a un alfabeto convencional. Un alfabeto no es más que un conjunto de símbolos fijado por acuerdo cultural Cualquier alfabeto se fija arbitrariamente, y esto es muy importante El alfabeto que usa una máquina en su interior no tiene que ser el mismo que utiliza el hombre basta con que la transformación de los símbolos se efectúe de manera automática. 3 Sistemas de codificación binarios Sistema de codificación binario: Cuando los símbolos de un alfabeto son transcritos a un alfabeto que sólo tiene dos símbolos Justificación técnica: es complicado lograr que los dispositivos físicos puedan diferenciar con precisión más de dos estados. Se utilizan dispositivos físicos biestables (con dos estados físicos diferenciados en forma clara y estable). Corriente eléctrica: pasa / no pasa corriente Intensidad de la luz: luz apagada / luz encendida. Sentido de la magnetización: magnetización norte- sur y su contraria 4 Sistemas de codificación binarios Internamente la computadora representa la información en unos y ceros, transformando la información como nosotros la conocemos mediante códigos binarios, tanto en la entrada como en la salida de la misma. 5 Códigos de representación de la información en las computadoras Texto EBCDIC (Extended Binary Coded Decimal Interchange Code) ASCII (American Standard Code for Information Interchange) UNICODE Datos Numéricos Coma Fija (Enteros) Representación Binaria sin signo Decimal codificado en Binario (BCD) Representación Binaria con signo Signo y Magnitud Complemento a 1 Complemento a 2 Exceso a 2 elevado a N-1 Coma Flotante (Reales) Normalización IEEE754 a) Simple precisión b) Doble precisión Sonidos WAV, MIDI, MP3 Imágenes Mapa de Bits BMP, TIFF, JPEG, GIF, PNG Mapa de Vectores DXF, EPS, TrueType 6

Transcript of Tema2-2011-Representacion de texto y numeros

Page 1: Tema2-2011-Representacion de texto y numeros

3/28/2011

1

Algoritmos y Estructura de Datos I

Tema 2 – Representación de texto y números 1 2

Agenda

� Representación de la información� Texto� Números� Sonidos� Imágenes

Representación de la Información

� La información se representa en base acadenas de símbolos.

� Las palabras y los números se representan enbase a un alfabeto convencional.

� Un alfabeto no es más que un conjunto desímbolos fijado por acuerdo cultural

� Cualquier alfabeto se fija arbitrariamente, y estoes muy importante

� El alfabeto que usa una máquina en su interiorno tiene que ser el mismo que utiliza el hombre

� basta con que la transformación de lossímbolos se efectúe de manera automática.

3

Sistemas de codificación binarios

� Sistema de codificación binario: Cuando lossímbolos de un alfabeto son transcritos a unalfabeto que sólo tiene dos símbolos

� Justificación técnica: es complicado lograr quelos dispositivos físicos puedan diferenciar conprecisión más de dos estados.

� Se utilizan dispositivos físicos biestables (condos estados físicos diferenciados en forma claray estable).� Corriente eléctrica: pasa / no pasa corriente � Intensidad de la luz: luz apagada / luz encendida.� Sentido de la magnetización: magnetización norte-

sur y su contraria

4

Sistemas de codificación binarios

Internamente la computadora representa la información en unos yceros, transformando la información como nosotros la conocemosmediante códigos binarios, tanto en la entrada como en la salidade la misma.

5

Códigos de representación de la información en las computadoras

TextoEBCDIC (Extended Binary Coded Decimal Interchange Code)ASCII (American Standard Code for Information Interchange)UNICODE

Datos Numéricos

Coma Fija(Enteros)

Representación Binaria sin signo

Decimal codificado en Binario (BCD)

Representación Binaria con signo

Signo y MagnitudComplemento a 1Complemento a 2Exceso a 2 elevado a N-1

Coma Flotante (Reales)

Normalización IEEE754 a) Simple precisión b) Doble precisión

Sonidos WAV, MIDI, MP3

ImágenesMapa de Bits BMP, TIFF, JPEG, GIF, PNG

Mapa de Vectores DXF, EPS, TrueType

6

Page 2: Tema2-2011-Representacion de texto y numeros

3/28/2011

2

7

Agenda

� Representación de la información� Texto� Números� Sonidos� Imágenes

Representación de texto

� CÓDIGO EBCDIC � CÓDIGO ASCII � UNICODE

8

Representación de textoLa información se suele introducir en la

computadora utilizando el lenguaje escrito: � Caracteres alfabéticos � Caracteres numéricos � Caracteres especiales � Caracteres geométricos y gráficos� Caracteres de control

9

Representación de texto

� Caracteres alfabéticos: son las letras mayúsculas y minúsculas del abecedario inglés: {A, B, C, D, E,..., X ,Y, Z, a, b, c, d,..., x, y, z}

� Caracteres numéricos: están constituidos por las diez cifras decimales: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

10

Representación de texto

� Caracteres especiales: son los símbolos no incluidos en los grupos anteriores, entre otros los siguientes:

{ ) ( , * / ; : + Ñ ñ = ! ? . " & > # < ] Ç [SP }

� Con SP se representa el carácter o espacio en blanco, tal como el que separa dos palabras.

11

Representación de texto

� Caracteres de control: representanórdenes de control, como el carácterindicador de fin de línea o el carácterindicador de sincronización de unatransmisión o de que se emita un pitido enun terminal, etc.

� Muchos de los caracteres de control songenerados e insertados por la propiacomputadora.

12

Page 3: Tema2-2011-Representacion de texto y numeros

3/28/2011

3

Representación de texto

� Caracteres gráficos: Son símbolos o módulos con los que se pueden representar figuras (o iconos).

Ejemplos: □ ◊ ♫ ¶ ♠ ♣ ♥ ☼☺ ♂ ♀ ♦ β £

13

Representación de texto

� Al tener que "traducir" toda la informaciónsuministrada a la computadora a ceros y unos esnecesario establecer una correspondencia (codificación)entre 2 conjuntos:

A Ξ {A,B,C,D,...,Z,a,b,...,z,0,1,2,3,...,9,/,+,(,),...} � B Ξ {O,1}n

� de forma tal que a cada elemento de A le corresponda un elemento distinto de B (n bits).

� Estos códigos se denominan códigos de E/S o códigos externos o códigos-texto, y pueden definirse de forma arbitraria.

No obstante existen códigos de E/S normalizados que son utilizados por diferentes constructores de computadoras: EBCDIC, ASCII, UNICODE

14

EBCDIC (Código de Intercambio Decimal Codificado en Binario Extendido)

� Es un sistema de codificación de 8 bits, donde cada carácter serepresenta como una cadena de 8 dígitos binarios y hay un totalde 2 8 = 256 caracteres a disposición.

� Cada carácter codificado o byte, se divide normalmente encuatro bits de zona, y cuatro bits numéricos de pesos: 8-4-2-1.

7 6 5 4 3 2 1 0

Posición 5 y 400 - A-I01 - J-R10 - S-Z11 - Números

Posición 7 y 611- Letras mayúsculas y números10 - Letras minúsculas.01 - Caracteres especiales00 - Ningún carácter encontrado

15

EBCDIC

Posición 5 y 400 - A-I01 - J-R10 - S-Z11 - Números

Posición 7 y 611- Letras mayúsculas y números10 - Letras minúsculas.01 - Caracteres especiales00 - Ningún carácter encontrado

1 1 0 0 0 0 0 1

Ejemplo de representación de la letra A (mayúscula)

Letra j minúscula = 1001 0001

Letra k minúscula = 1001 0010

Número 5 = 1111 0101

16

EBCDIC (tabla)

bits3210

76540000

0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0000 NUL DEL DS SP & - { } \ 0

0001 SOH DC1 SOS a j ~ A J 1

0010 STX DC2 FS SYN b k s B K S 2

0011 ETX DC3 c l t C L T 3

0100 PF RES BYP PN d m u D M U 4

0101 HT NL LF RS e n v E N V 5

0110 LC BS EOB UC f o w F O W 6

0111 DEL IL ESC EOT g p x G P X 7

1000 CAN h q y H Q Y 8

1001 RLF EM \ i r z I R Z 9

1010 SMM CC SM ⊄ ! ¦ :

1011 VT . $ ' #

1100 FF IFS DC4 < * % @

1101 CR IGS ENQ NAK ( ) _ ´

1110 SO IRS ACK + ; >

1111 SI IUS BEL SUB | ¬ ? "

17

ASCII (Código Estándar Americano para el Intercambio de Información)

� Utiliza 7 bits y es actualmente el más usado.� Existen otras versiones ampliadas que utilizan 8 bits y

respetan los códigos normalizados del ASCII básico,aprovechando las combinaciones no usadas para representarsímbolos adicionales. Ej. ISO 8859-1 (ISO-Latin1).

� El código ASCII reserva los primeros 32 códigos (numeradosdel 0 al 31 en decimal) para caracteres de control: códigospensados para controlar los dispositivos, muchos de estos yano se utilizan.

� El decimal 32 representa el espacio en blanco (SP) que seproduce al oprimir la barra espaciadora.

� Los códigos del 33 al 126 se conocen como caracteresimprimibles, y representan letras, dígitos, signos depuntuación y varios símbolos.

18

Page 4: Tema2-2011-Representacion de texto y numeros

3/28/2011

4

Tabla de Códigos ASCII de 7 bitsHex 0 1 2 3 4 5 6 7 8 9 A B C D E F

Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Hex Dec Bits 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0 0 0000 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI

10 16 0001 DEL DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

20 32 0010 SP ! “ # $ % & ‘ ( ) * + ’ - . /

30 48 0011 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

40 64 0100 @ A B C D E F G H I J K L M N O

50 80 0101 P Q R S T U V W X Y Z [ \ ] ^ _

60 96 0110 ` a b c d e f g h i j k l m n o

70 112 0111 p q r s t u v w x y z { ¦ } ~ DEL

Cada carácter se puede representar también en decimal y hexadecimal. Ejemplo: letra J = 01001010 en binario, 74 en decimal y 4A en hexadecimal.El código decimal permite ingresar caracteres ASCII a través del teclado. Ejemplo: Alt+ 64 (@); Alt + 60 (<)

19

Código ASCII Extendido

Incorpora caracteres que se usan en el idioma español: ej. letras acentuadas= á (Alt + 160), letra ñ (Alt + 164) y otros símbolos.

20

UNICODE (ISO / IEC 10646)

� Es propuesto por un consorcio de empresas y para procesartexto de diversas culturas (demanda que surge con laproliferación de aplicaciones Web).

� Los códigos anteriores presentan desventajas, tales como:� Los símbolos codificados son insuficientes para

representar los caracteres especiales que requierennumerosas aplicaciones.

� Los símbolos y códigos añadidos en las versionesampliadas a 8 bits no están normalizados.

� Están basados en los caracteres latinos, existiendo otrasculturas que utilizan otros símbolos muy distintos.

� Por ejemplo, los ideogramas (China, Japón, Corea) osímbolos que representan palabras, frases o ideascompletas, siendo, por tanto, inoperantes los códigos quesólo codifican letras individuales.

21

UNICODE (ISO / IEC 10646)

Unicode está reconocido como estándar ISO/IEC 10646, y trata de ofrecer las siguientes propiedades:

� Universalidad, trata de cubrir la mayoría de lenguajes escritos existentes en la actualidad: 16 bits ���� 65.356 símbolos.

� Unicidad, a cada carácter se le asigna exactamente un único código.

� Uniformidad, ya que todos los símbolos se representan con un número fijo de bits (16).

22

UNICODE (ISO / IEC 10646)

Zona Códigos Símbolos codificados Número de caracteres

A

0000 0000000FF

Latín-1 256

Otros alfabetos 7.936

2000 Símbolos generales y caracteres fonéticos chinos, japoneses y coreanos

8.192

I 4000 Ideogramas 24.576

O A000 Pendiente de asignación 16.384

RE000HF

Caracteres locales y propios de los usuarios

Compatibilidad con otros códigos

8.192

23 24

Agenda

� Representación de la información� Texto� Números � Sonidos� Imágenes

Page 5: Tema2-2011-Representacion de texto y numeros

3/28/2011

5

Representaciones Numéricas

Coma Fija -Enteros

Representación binaria sin signo

BCD-Decimal Codificado en Binario

Representación binaria con signo

Signo y Magnitud

Complemento a 1

Complemento a 2

Exceso a 2 elevado a N-1

25

BCD: Decimal Codificado en Binario

Existen 2 formas para representar números binarios sin signo:

a) La representación binaria directa, aplicando el teorema FundamentalEjemplo: 469 = 1110101012

b) La representación en Decimal Codificado en Binario: � Requiere por lo menos 4 bits por cada dígito

decimal.� Utiliza la codificación ponderada, en la cual se le dan

a los bits de izquierda a derecha, los pesos 8, 4, 2 y1, respectivamente.

Ejemplo: Para representar el número 469 en BCD:4 6 9

0100 0110 1001

26

Representación Binaria con signo (COMA FIJA)

� La computadora puede representar internamentenúmeros enteros por medio de una cantidad finita debits que denominaremos PALABRA.

� El tamaño de una palabra depende de la computadoraque se utilice y se corresponde con la cantidad debits que como unidad elemental puede manipularuna computadora (8, 16, 32 o 64 bits).

� El nombre “coma fija” viene de la posición en que sesupone situado el punto decimal, que es en unaposición fija.

� La coma fija es utilizada en la actualidad para larepresentación de números enteros.

27

Coma Fija: Rango y Resolución (1)

� Rango: Diferencia entre el mayor número y el menor.

� Resolución: Diferencia entre dos números consecutivos.

Si trabajamos en sistema decimal con tres cifras, un entero y dos decimales:

Rango es: de 0,00 a 9,99

Resolución es: 0,01

Ej. 2,32 - 2,31 = 0,01; 9,99 -9,98 = 0,01

28

Coma Fija: Rango y Resolución (1)

� Notar que hay un compromiso entre rangoy resolución.

� Si mantenemos tres dígitos y desplazamos la coma dos lugares a la derecha, el rango pasa a ser ??

Rango es: de 0 a 999

Resolución es: 1 en cualquiera de los casos hay 103 números distintos.

29

Representación Binaria con signo (Coma Fija)

� Existen cuatro métodos de representaciónbinaria para enteros con signo:

Módulo y signo

Complemento a 1

Complemento a 2

Exceso a 2 elevado a n-1

30

Page 6: Tema2-2011-Representacion de texto y numeros

3/28/2011

6

Módulo y Signo (MS)

� El bit que está situado más a la izquierda representael signo, y su valor será de 0 para el positivo y de 1para el negativo.

� El resto de los bits (n-1) representan el módulo delnúmero.

Número 10: 0 0 0 0 1 0 1 0

Número -10: 1 0 0 0 1 0 1 0módulosigno

El rango de representación para palabras de n bits es:-2 n-1+ 1 <= X <= 2 n-1 -1

Para el caso de 8 bits el rango es: -127 <= X <= 127

Este sistema posee laventaja de tener unrango simétrico y ladesventaja de tenerdos representacionesdel 0.+0 = 0 0000000– 0 = 1 0000000

64 32 16 8 4 2 1

31

Complemento a 1 (C-1)

� El bit que está situado más a la izquierda representa elsigno, y su valor será de 0 para el positivo y de 1 para elnegativo.

� Para los números positivos el resto de los bits (N-1)representan el módulo del número.

� El negativo de un número positivo se obtienecomplementando todos sus dígitos, incluido el bit de signo.

Número 10: 0 0 0 0 1 0 1 0

Número -10: 1 1 1 1 0 1 0 1

módulosigno

El rango de representación para n bits es:-2 n-1+ 1 <= X <= 2 n-1 -1

Para 8 bits el rango es: -127 <= X <= 127

Este sistema posee laventaja de tener unrango simétrico y ladesventaja de tener dosrepresentaciones del 0.+0 = 0 0000000–0 = 1 11111111

32

Complemento a 2 (C-2)

� El bit que está situado más a la izquierda representael signo, y su valor será de 0 para el positivo y de 1para el negativo.

� Para los números positivos el resto de los bits (n-1)representan el módulo del número.

� El negativo de un número positivo se obtiene en dospasos:� Primer paso: Se complementa el número positivo en

todos sus bits, incluido el bit de signo, es decir, serealiza el "complemento a 1".

Número 10: 0 0 0 0 1 0 1 0Número -10: 1 1 1 1 0 1 0 1

33

Complemento a 2 (C-2) (cont.)� Segundo paso: Al resultado obtenido en el primer paso se

le suma 1, despreciando el ultimo acarreo si existe.Número -10: 1 1 1 1 0 1 0 1

+ 11 1 1 1 0 1 1 0

El rango de representación es asimétrico, lo que constituye su mayor inconveniente y viene dado por la fórmula:

-2 n-1 <= X <= 2 n-1 -1Para el caso de palabras de 8 bits el rango es: -128 <= X <= 127La principal ventaja es la de tener una única representación del cero:En el caso de palabras de 8 bits tendríamos:Número 0 0 0 0 0 0 0 0 0 Número -0 Primer paso 1 1 1 1 1 1 1 1

Segundo paso 1 1 1 1 1 1 1 1+ 1

110 0 0 0 0 0 0 0El último acarreo se desprecia por lo tanto, el 0 y el -0 tienen una sola representación.34

Exceso a 2 elevado a la n-1

� Este método no utiliza ningún bit para el signo, conlo cual todos los bits representan un módulo o valorque corresponde al número representado más elexceso.

� Exceso para n bits: 2n-1.

� Exceso para 8 bits: 28-1 = 27 = 128.

Número 12 � ( 12 + 128) = 140: 1 0 0 0 1 1 0 0

Número -12 � (-12 + 128) = 116: 0 1 1 1 0 1 0 0

El rango de representación es asimétrico y viene dado por:-2n-1 <= X <= 2 n-1 -1

Para el caso de 8 bits el rango es: -128 <= X <= 127

35

Conclusiones

� El Complemento a 2 es el másutilizado.

� Resuelve todas las operaciones consumas.

� Reduce la complejidad de los circuitos dela unidad aritmética lógica

� La representación en exceso se utilizapara la representación del exponente delos datos del tipo real.

36

Page 7: Tema2-2011-Representacion de texto y numeros

3/28/2011

7

Límites y desbordamientos

Longitud de palabra

Límite superiorN (max)

Límite inferior N (min)

Complemento a 1 Complemento a 2

8127 -127 -128

1632.767 -32.767 -32.768

322.147.483.649 -2.147.483.649 -2.147.483.650

649,223372 * 1018 -9,223372 * 1018 -9,223372 * 1018

Importante: Los valores a representar dependen de lacantidad de bits de la palabra.

37

Límites y desbordamientos

DesbordamientoDesbordamiento

N (Max)N (Min)

0

Datos enteros representables

+∞-∞

Si como resultado de las operaciones, se obtiene un número fuera de los límites, se dice que se ha producido un desbordamiento.

38

Representación de números realesNotación Exponencial� Cuando se opera con números muy grandes o muy

pequeños se suele utilizar la notación exponencial.

Un número se puede representar de diferentes formas, elexponente indica los lugares que se corre la coma decimal.Ejemplo:

13.257,3285 = 13.257,3285 * 100 = 1,32573285 * 104

= 0, 132573285 * 105 = 132.573.285 * 10-4 =13.257.328.500 * 10-6

� Donde todo número se puede representar como:

Número = mantisa * base exponente

39

Coma flotante

La notación exponencial también se conoce comonotación científica o notación en coma flotante,dado que parece como si la coma decimal flotase dederecha a izquierda y al revés al cambiar el valor delexponente.

40

Notación científica (Calculadora)

En notación científica estándar, los números seexpresan de la forma:

N= +- m E +-p = +- m * 10 +- p

donde 1 <= m < 10, y p es un número entero, cuyo signo indica si la coma se desplaza a la derecha (+) o a izquierda (-)

Ejemplo: -246,36 = -2,4636 E+2 = -2,4636 * 10 2

82000000000 = 8,2 E +10 = 8,2 * 10 10

0,00003 = 3,0 E-5 = 3 * 10 -5

0,3 * 10 – 4 Notación Exponencial Normalizada

41

Notación Exponencial Normalizada

� Se llama así a la representación en laque la mantisa no tiene parte enteray el primer dígito a la derecha delpunto decimal es significativo(distinto de cero), salvo en larepresentación del número 0.

42

Page 8: Tema2-2011-Representacion de texto y numeros

3/28/2011

8

Notación Exponencial Normalizada

� Ejemplo:Representación del número decimal 728,3 con basede exponenciación 10.728,3 = 7283 * 10(-1) = 728,3 * 10(0) = 72,83 * 10(1) == 7,283 * 10(2) == 0,7283 * 10(3) notación exponencial normalizadaExisten distintos valores de mantisa y exponente para representar el mismo número. Lo mismo sucede en base 2 .

43

Cómo se escribe un número en punto flotante normalizado?

1. Se escribe el número en el sistemapropuesto para la mantisa.

2. Se desplaza la coma y se cambia elexponente hasta obtener la formanormalizada.

3. Se convierte el exponente al sistemapropuesto para él.

44

Normalización y el esquema de bit implícito (1)

� Si la mantisa se representa como númerobinario y si la condición de normalizaciónconsiste en que la mantisa normalizadacomience siempre con 1, entonces no haynecesidad de almacenar ese 1.

� La mayoría de las representaciones en puntoflotante no almacenan dicho bit inicial.

� Se lo “recorta” antes de empaquetar el númeropara su almacenamiento y se lo recupera aldesempaquetar.

� Se obtiene un bit adicional a la derecha de lamantisa.

� El bit así eliminado se denomina bit implícito.

45

Normalización y el esquema de bit implícito (2)� Si en un formato la mantisa luego de

la normalización se representa como :0,11010

� El patrón a ser almacenado es 1010� El bit mas significativo se trunca, se

“esconde”.� Luego veremos que la IEEE 754 utiliza

este concepto.

46

Procesamiento de la coma flotante� La representación y manejo de los datos puede serresponsabilidad del hardware de la computadora o de lostraductores de lenguajes.

� Los microprocesadores actuales disponen internamente unprocesador de coma flotante (Float Point Unit) que contienecircuitos aritméticos para operar con este tipo de datos.

� Los primeros microprocesadores no incluían la FPU y esafunción cumplían los coprocesadores matemáticos.

� Si el hardware no dispone de circuiteria para coma flotante yel lenguaje de programación incluye este tipo de datos, eltraductor debe descomponer las instrucciones en formatosoperables por los circuitos de la máquina, disminuyendo elrendimiento del procesamiento.

� Hasta la década de los 80, cada fabricante de computadorasutilizaba un sistema propio para la representación de losnúmeros reales, luego surgió la necesidad de un sistemanormalizado en el que trabajó la asociación IEEE.

47

Normalización IEEE 754

� Existen muchas formas de representación encoma flotante, según:

� la longitud de la palabra de la computadora,

� la base de exponenciación, el nro de dígitos reservados para la mantisay el

� exponente (MS, C-1 ó C-2), etc. La coma flotante puede definirseparticularmente en cada caso.

� El IEEE (Instituto de Ingeniería Eléctrica y Electrónica) hacreado un estándar sobre la presentación de números encoma flotante. Este estándar especifica como debenrepresentarse los números en coma flotante con simpleprecisión (32 bits) o doble precisión (64 bits), y tambiéncómo deben realizarse las operaciones aritméticas con ellos.

48

Page 9: Tema2-2011-Representacion de texto y numeros

3/28/2011

9

Normalización IEEE 754

� La base del exponente es B=2, esdecir está predeterminada:

� de esta forma sólo es necesarioalmacenar, de alguna forma, elsigno, M y E

N = ±M · 2E

49

Normalización IEEE 754

La notación establece las siguientes normas:� Elementos almacenados y orden de almacenamiento: La

base del exponente es B=2, es decir está predeterminada: N = +/- M * 2E .

� un campo del signo (s) que ocupa 1 bit,� un campo del exponente (o característica, e), que ocupa ne

bits y� un campo de la mantisa (m), que ocupa nm bits. � Se verifica: n = 1 +ne+ nm

El orden de almacenamiento es: campo de signo (s), campo de exponente (e) y campo de mantisa (m).

50

51

Normalización IEEE 754

� Campo del signo. El bit de signo es ceropara los números positivos y uno para losnúmeros negativos.

� Campo del exponente. El exponente sealmacena en la forma de "entero sesgado“:S = 2ne-1-1 ; e = S + E = 2 ne-1+E-1,

� de esta forma en los ne bits reservadospara el exponente se pueden incluirexponentes positivos o negativos sinutilizar un bit explicito de signo.

Normalización IEEE 754

Ejemplos:Exponente (E) Exponente

sesgadoExponente Almacenado

0 127 + 0= 127 0111 1111

+2 127 + 2= 129 1000 0001

-126 127 – 126= 1 0000 0001

S= 28-1 – 1 = 127

52

53

Normalización IEEE 754� Campo de la mantisa

� el exponente se ajusta de forma tal que el 1más significativo de la mantisa se encuentre enla posición 0 (posición de las unidades); esdecir, 1 ≤ M < 2.

� El campo de la mantisa se obtiene almacenandosólo la parte fraccionaria del númeronormalizado; es decir, no se almacena lainformación "1”, porque todas las mantisasnormalizadas comienzan con 1

� Reajustar mantisa y exponente de forma tal quese verifique:M = [1.m], con 1 ≤ M < 2

54

Normalización IEEE 754� Precisiones usuales en IEEE754� Simple Precisión: exige una cadena de 32

bits. El primer bit es el bit de signo (S), lossiguientes 8 son los bits del exponente (E) y losrestantes 23 son la mantisa (M):

� Doble precisión: exige una cadena de 64 bits.El primer bit es el bit de signo (S), los siguientes11 son los bits del exponente (E) y los restantes52 son la mantisa (M)

Page 10: Tema2-2011-Representacion de texto y numeros

3/28/2011

10

55

Simple precisión (32 bits)

� Exponente: 8 bits. Se utiliza una representación conocida como “sesgada”.� El sesgo toma el valor (2k-1 – 1), donde k es el número de bits disponibles para la representación del exponente. En este caso 28-1 – 1 = 127. Este sesgo se suma al exponente original, y el resultado es el que se almacena: E = EO + S� Mantisa: 23 bits. Bit implícito � 24 bits efectivos. Está normalizada. La normalización toma la forma 1,bb..b, donde el patrón bb..b representa los 23 bits de la mantisa que se almacenan. � Note que la coma está a la derecha del primer dígito significativo.

Signo Exponente Mantisa

31 30 - 23 22 - 0

56

Simple precisión (32 bits)

Ejemplo:

0,0000101 ->

en coma flotante 0,101 * 2 -4

0,0000101->

en flotante normalizado 1,01 * 2 -5

57

Doble precisión (64 bits)

� Exponente: 11 bits. Sesgo 211-1 – 1 = 1023

� Mantisa: 52 bits. Bit implícito � 53 bits efectivos. Igual consideración para la normalización.

Signo Exponente Mantisa63 62-52 51-0

Casos especiales en IEEE 754

Tanto en precisión doble como en simple, existen algunos casos especiales que dependen de los valores del signo, del exponente y de la mantisa:

58

59

Casos especiales en IEEE 754

Ver con detalle las dos últimas filas:

Cuando todos los bits del exponente son ceros(00...0), esto quiere decir que no se está utilizandobit implícito. Si, además, la mantisa es todo ceros(00...0), el número representado es el cero (0), perosi la mantisa es distinta de todo ceros, el número quese está representando es muy pequeño, de tal formaque, el exponente valdrá -126 ó -1022, dependiendode si el número está escrito en precisión simple odoble, respectivamente.

60

Normalización IEEE 754

� Precisiones usuales en IEEE754� Valores límites: Con toda representación se

obtienen unos valores máximos y mínimos representables que para precisión simple son:

� Número Mayor (N max) 3,402823466 . 1038

� Número menor normalizado (N min, nor ) 1,2 . 10-38

� Número menor denormalizado (N min, den) 1,1401. 10-45

Page 11: Tema2-2011-Representacion de texto y numeros

3/28/2011

11

61

Normalización IEEE 754� Observar que los números reales que

cumplen las siguientes condiciones nopueden ser representados:

� Números comprendidos entre –N(min,den)y N(Min,den) con N distinto de cero.

� Si como resultado de una operación elnúmero N tiene que caer en esa zona, sedice que se produce un agotamiento(underflow).

62

Normalización IEEE 754

� Los nros menores que –N(max) y mayores que N(Max) con N distinto de infinito positivo o negativo.

� Si como resultado de una operación el número N tiene que caer en esa zona, se dice que se produce un desbordamiento (overflow)

63

Normalización IEEE 754

64

Ejemplo 1: (i)

� Para escribir el número 101110,0101011101000011111000011111000100112

� en el estándar IEEE 754 con precisión simple, exponente en Exceso a 2n-1-1 y mantisa en MS, primero hay que normalizarlo:

� 1,011100101011101000011111000011111000100112 x 25

65

Ejemplo 1: (ii)

� El exponente, en Exceso a 2n-1-1, será:510 + (28-1 - 1)10 = 510 + (27 - 1)10 =510 + (128 - 1)10 = 13210 =10000100 (Exceso a 127)

� De la mantisa se toman los bits 23 bits más significativos:1,0111001010111010000111

66

Ejemplo 1: (iii)

� El resto de bits no se pueden representar, yaque, no caben en la mantisa.

� Sin embargo, si la mantisa se normalizasituando la coma decimal a la derecha del bitmás significativo, dicho bit siempre vale 1. Portanto, se puede prescindir de él, y tomar en sulugar un bit más de la mantisa � la precisióndel número representado es mayor.Así, los bits de la mantisa serán:

01110010101110100001111� Al bit omitido se le llama bit implícito. Por otra

parte, el bit de signo vale 0, ya que, el númeroes positivo.

Page 12: Tema2-2011-Representacion de texto y numeros

3/28/2011

12

67

Ejemplo 1: (iV)� En consecuencia, el número se puede representar como:

Los programadores, para representar a los números reales en este formato, suelen utilizar el Sistema Hexadecimal.

De esta manera:

En este caso, los números no son exactamente iguales, ya que, con precisión simple no se han podido representar todos los bits de la mantisa

Ejemplo 1: (V)

68

Ejemplo 2: (i)

Dado el número +1011010010001 convertirlo a formato de simple precisión según estándar IEEE 754.

a) Se trata de un número positivo � bit de signo 0

b) El siguiente paso consiste en normalizar el número 1011010010001 � 1, 011010010001* 2 12

c) El valor de la mantisa será entonces: 010010001 (considerando el bit implícito)

69

Ejemplo 2:(ii)

d) Ahora se calcula el valor del exponente

Exponente �12

Exponente � 12+ 127 = 139

Exponente � 10001011

e) Con todo lo anterior se puede representar el número original:

0 10001011 011010010001

S Exponente Mantisa

70

Ejemplo 3: (i)Dado el número 805C0000CFL del estándar IEEE754 con precisiónsimple, exponente en Exceso a 2n-1-1 y mantisa en Magnitud y Signo conbit implícito, para averiguar a qué número representa en base 10, sepueden realizar los siguientes pasos:

1º) Convertir 805C000016 a base 2:

2º) Obtener los bits del signo, de la mantisa y del exponente:

71

Ejemplo 3: (ii)3º) Al observar que todos los bits del exponente son ceros (00000000) yla mantisa es distinta de todo ceros, se deduce que es un caso especial. Se está representado a un número muy pequeño sin bit implícito y, por tanto, el exponente es -126.

4º) En notación exponencial, puesto que en este caso no se utiliza bitimplícito, la mantisa se escribe con un cero (0), seguido de la comadecimal (,) y de los bits de la mantisa (10111000000000000000000).En cuanto al signo del número, es negativo, ya que, el bit de signo es 1.Con todo ello, el número es: -0,10111 x 2-126

5º) Expresar el número en base 10:

72

Page 13: Tema2-2011-Representacion de texto y numeros

3/28/2011

13

Observaciones finales

� Un buen programador debe tener en cuenta cómo se almacenanlos números reales en la computadora, ya que se pueden presentarproblemas inherentes a la forma en que se representan losnúmeros (con un número limitado de bits). Dificultades:

� Al obtener, en resultados intermedios, números excesivamentepequeños. Esto puede ocurrir por restar dos números muy igualeso por la división entre números en los que el divisor es muchomayor que el dividendo. Puede perderse entonces la precisión delos cálculos o producirse un desbordamiento a cero o agotamiento.

� Por la obtención de resultados numéricos excesivamente altos, esdecir por desbordamiento. Esto ocurre, por ejemplo, al dividir unnúmero por otro mucho menor que él o al efectuar sumas oproductos sucesivos con números muy elevados.

73 74

Observaciones finalesc) En la comparación de dos números. Hay que tener en cuenta que cada

dato real en la computadora representa a infinitos números reales (unintervalo de la recta real), por lo que en general una mantisa decimalno puede representarse exactamente con nm bits, con lo que generaun error "de representación".

Esto da lugar a problemas al comparar si un número es igual a otro(sobre todo si estos números se han obtenido por cálculos oprocedimientos distintos), ya que el computador considera que dosnúmeros son iguales únicamente si son iguales todos sus bits.

Las detecciones de igualdades deben hacerse con números enteros oconsiderando que dos números son iguales si la diferencia entre elloses menor que un valor dado.

d) Una consecuencia de lo dicho anteriormente es que, la suma ymultiplicación de datos de tipo real no siempre cumplen laspropiedades asociativas y distributiva, se pueden obtener resultadosdistintos dependiendo del orden en que se realizan las operaciones.