Está en la página 1de 13

3/28/2011

Algoritmos y Estructura Agenda


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

Tema 2 – Representación de texto y


números 1 2

Representación de la Información Sistemas de codificación binarios

La información se representa en base a Sistema de codificación binario: Cuando los


cadenas de símbolos. símbolos de un alfabeto son transcritos a un
Las palabras y los números se representan en alfabeto que sólo tiene dos símbolos
base a un alfabeto convencional. Justificación técnica: es complicado lograr que
Un alfabeto no es más que un conjunto de los dispositivos físicos puedan diferenciar con
símbolos fijado por acuerdo cultural precisión más de dos estados.
Se utilizan dispositivos físicos biestables (con
Cualquier alfabeto se fija arbitrariamente, y esto dos estados físicos diferenciados en forma clara
es muy importante y estable).
El alfabeto que usa una máquina en su interior Corriente eléctrica: pasa / no pasa corriente
no tiene que ser el mismo que utiliza el hombre Intensidad de la luz: luz apagada / luz encendida.
Sentido de la magnetización: magnetización norte-
basta con que la transformación de los sur y su contraria
símbolos se efectúe de manera automática.
3 4

Códigos de representación de la
Sistemas de codificación binarios información en las computadoras
EBCDIC (Extended Binary Coded Decimal Interchange Code)
Internamente la computadora representa la información en unos y Texto ASCII (American Standard Code for Information Interchange)
ceros, transformando la información como nosotros la conocemos UNICODE
mediante códigos binarios, tanto en la entrada como en la salida
de la misma. Decimal codificado en Binario
Representación Binaria (BCD)
sin signo
Coma Fija
(Enteros) Signo y Magnitud
Datos Representación Binaria Complemento a 1
Numéricos con signo Complemento a 2
Exceso a 2 elevado a N-1

Coma Normalización IEEE754


Flotante a) Simple precisión
(Reales) b) Doble precisión

Sonidos WAV, MIDI, MP3

Mapa de Bits BMP, TIFF, JPEG, GIF, PNG


Imágenes
Mapa de Vectores DXF, EPS, TrueType
5 6

1
3/28/2011

Agenda Representación de texto


Representación de la información
Texto
CÓDIGO EBCDIC
Números
CÓDIGO ASCII
Sonidos
Imágenes UNICODE

7 8

Representación de texto Representación de texto


La información se suele introducir en la
Caracteres alfabéticos: son las letras
computadora utilizando el lenguaje escrito:
mayúsculas y minúsculas del abecedario
Caracteres alfabéticos inglés:
Caracteres numéricos {A, B, C, D, E,..., X ,Y, Z, a, b, c, d,..., x, y,
Caracteres especiales z}
Caracteres geométricos y gráficos
Caracteres de control
Caracteres numéricos: están constituidos
por las diez cifras decimales:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

9 10

Representación de texto Representación de texto

Caracteres especiales: son los símbolos Caracteres de control: representan


no incluidos en los grupos anteriores, entre órdenes de control, como el carácter
otros los siguientes: indicador de fin de línea o el carácter
{)(,*/;:+Ññ=!?."&>#<]Ç[ indicador de sincronización de una
SP } transmisión o de que se emita un pitido en
un terminal, etc.
Muchos de los caracteres de control son
Con SP se representa el carácter o espacio generados e insertados por la propia
en blanco, tal como el que separa dos computadora.
palabras.

11 12

2
3/28/2011

Representación de texto Representación de texto


Al tener que "traducir" toda la información
Caracteres gráficos: Son símbolos suministrada a la computadora a ceros y unos es
necesario establecer una correspondencia (codificación)
o módulos con los que se pueden entre 2 conjuntos:
representar figuras (o iconos). A H {A,B,C,D,...,Z,a,b,...,z,0,1,2,3,...,9,/,+,(,),...} B H {O,1}n
de forma tal que a cada elemento de A le corresponda
Ejemplos: un elemento distinto de B (n bits).

¶ G£ 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

13 14

EBCDIC (Código de Intercambio Decimal


Codificado en Binario Extendido) EBCDIC
Es un sistema de codificación de 8 bits, donde cada carácter se Ejemplo de representación de la letra A (mayúscula)
representa como una cadena de 8 dígitos binarios y hay un total
de 2 8 = 256 caracteres a disposición.
1 1 0 0 0 0 0 1
Cada carácter codificado o byte, se divide normalmente en
cuatro bits de zona, y cuatro bits numéricos de pesos: 8-4-2-1.
7 6 5 4 3 2 1 0
Posición 7 y 6 Posición 5 y 4
11- Letras mayúsculas y números 00 - A-I
10 - Letras minúsculas. 01 - J-R
01 - Caracteres especiales 10 - S-Z
00 - Ningún carácter encontrado 11 - Números
Posición 7 y 6 Posición 5 y 4
11- Letras mayúsculas y números 00 - A-I Letra j minúscula = 1001 0001
10 - Letras minúsculas. 01 - J-R
Letra k minúscula = 1001 0010
01 - Caracteres especiales 10 - S-Z
00 - Ningún carácter encontrado 11 - Números Número 5 = 1111 0101

15 16

EBCDIC (tabla) ASCII (Código Estándar Americano


para el Intercambio de Información)
bits
3210
7654
0000
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Utiliza 7 bits y es actualmente el más usado.
0000 NUL DEL DS SP & - { } \ 0 Existen otras versiones ampliadas que utilizan 8 bits y
0001 SOH DC1 SOS a j ~ A J 1 respetan los códigos normalizados del ASCII básico,
0010 STX DC2 FS SYN b k s B K S 2 aprovechando las combinaciones no usadas para representar
0011 ETX DC3 c l t C L T 3 símbolos adicionales. Ej. ISO 8859-1 (ISO-Latin1).
0100 PF RES BYP PN d m u D M U 4
0101 HT NL LF RS e n v E N V 5
El código ASCII reserva los primeros 32 códigos (numerados
0110 LC BS EOB UC f o w F O W 6 del 0 al 31 en decimal) para caracteres de control: códigos
0111 DEL IL ESC EOT g p x G P X 7 pensados para controlar los dispositivos, muchos de estos ya
1000 CAN h q y H Q Y 8
no se utilizan.
1001 RLF EM \ i r z I R Z 9
1010 SMM CC SM ! ¦ : El decimal 32 representa el espacio en blanco (SP) que se
1011 VT . $ ' # produce al oprimir la barra espaciadora.
1100 FF IFS DC4 < * % @
1101 CR IGS ENQ NAK ( ) _ ´
Los códigos del 33 al 126 se conocen como caracteres
1110 SO IRS ACK + ; > imprimibles, y representan letras, dígitos, signos de
1111 SI IUS BEL SUB | ¬ ? " puntuación y varios símbolos.
17 18

3
3/28/2011

Tabla de Códigos ASCII de 7 bits Código ASCII Extendido


Hex 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. Incorpora caracteres que se usan en el idioma español: ej. letras
Ejemplo: Alt+ 64 (@); Alt + 60 (<) acentuadas= á (Alt + 160), letra ñ (Alt + 164) y otros símbolos.
19 20

UNICODE (ISO / IEC 10646)


UNICODE (ISO / IEC 10646)
Es propuesto por un consorcio de empresas y para procesar
texto de diversas culturas (demanda que surge con la Unicode está reconocido como estándar
proliferación de aplicaciones Web). ISO/IEC 10646, y trata de ofrecer las
Los códigos anteriores presentan desventajas, tales como: siguientes propiedades:
Los símbolos codificados son insuficientes para Universalidad, trata de cubrir la mayoría de
representar los caracteres especiales que requieren lenguajes escritos existentes en la actualidad:
numerosas aplicaciones.
16 bits 65.356 símbolos.
Los símbolos y códigos añadidos en las versiones
ampliadas a 8 bits no están normalizados. Unicidad, a cada carácter se le asigna
Están basados en los caracteres latinos, existiendo otras exactamente un único código.
culturas que utilizan otros símbolos muy distintos.
Uniformidad, ya que todos los símbolos se
Por ejemplo, los ideogramas (China, Japón, Corea) o representan con un número fijo de bits (16).
símbolos que representan palabras, frases o ideas
completas, siendo, por tanto, inoperantes los códigos que
sólo codifican letras individuales.
21 22

UNICODE (ISO / IEC 10646) Agenda


Número de
Zona Códigos Símbolos codificados
caracteres Representación de la información
0000 0000
000FF
Latín-1 256
Texto
Otros alfabetos 7.936 Números
A
2000 Símbolos generales y caracteres 8.192
Sonidos
fonéticos chinos, japoneses y
coreanos Imágenes
I 4000 Ideogramas 24.576

O A000 Pendiente de asignación 16.384

E000 Caracteres locales y propios de los 8.192


R HF usuarios
Compatibilidad con otros códigos
23 24

4
3/28/2011

BCD: Decimal Codificado en


Representaciones Numéricas Binario
Existen 2 formas para representar números binarios sin
signo:
a) La representación binaria directa, aplicando el teorema
Fundamental
Representación BCD-Decimal Codificado en Ejemplo: 469 = 1110101012
binaria sin signo Binario
b) La representación en Decimal Codificado en Binario:
Coma Requiere por lo menos 4 bits por cada dígito
Fija - decimal.
Signo y Magnitud
Utiliza la codificación ponderada, en la cual se le dan
Enteros Complemento a 1 a los bits de izquierda a derecha, los pesos 8, 4, 2 y
Representación 1, respectivamente.
Complemento a 2
binaria con signo Exceso a 2 elevado a N-1 Ejemplo: Para representar el número 469 en BCD:
4 6 9
0100 0110 1001
25 26

Representación Binaria con signo


(COMA FIJA) Coma Fija: Rango y Resolución (1)

La computadora puede representar internamente Rango: Diferencia entre el mayor número y el


números enteros por medio de una cantidad finita de menor.
bits que denominaremos PALABRA.
Resolución: Diferencia entre dos números
El tamaño de una palabra depende de la computadora
que se utilice y se corresponde con la cantidad de consecutivos.
bits que como unidad elemental puede manipular
Si trabajamos en sistema decimal con tres cifras,
una computadora (8, 16, 32 o 64 bits).
un entero y dos decimales:
El nombre “coma fija” viene de la posición en que se
supone situado el punto decimal, que es en una Rango es: de 0,00 a 9,99
posición fija.
Resolución es: 0,01
La coma fija es utilizada en la actualidad para la
representación de números enteros. Ej. 2,32 - 2,31 = 0,01; 9,99 -9,98 = 0,01
27 28

Representación Binaria con signo


Coma Fija: Rango y Resolución (1) (Coma Fija)
Notar que hay un compromiso entre rango
Existen cuatro métodos de representación
y resolución. binaria para enteros con signo:
Si mantenemos tres dígitos y desplazamos Módulo y signo
la coma dos lugares a la derecha, el rango Complemento a 1
pasa a ser ?? Complemento a 2
Rango es: de 0 a 999 Exceso a 2 elevado a n-1

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

29 30

5
3/28/2011

Módulo y Signo (MS) Complemento a 1 (C-1)


El bit que está situado más a la izquierda representa El bit que está situado más a la izquierda representa el
el signo, y su valor será de 0 para el positivo y de 1 signo, y su valor será de 0 para el positivo y de 1 para el
para el negativo. negativo.
El resto de los bits (n-1) representan el módulo del Para los números positivos el resto de los bits (N-1)
representan el módulo del número.
número. Este sistema posee la
64 32 16 8 4 2 1 ventaja de tener un
El negativo de un número positivo se obtiene
rango simétrico y la complementando todos sus dígitos, incluido el bit de signo.
Número 10: 00001010 desventaja de tener Número 10: 0 0 0 0 1 0 1 0 Este sistema posee la
dos representaciones ventaja de tener un
del 0. rango simétrico y la
signo módulo +0 = 0 0000000 signo módulo desventaja de tener dos
– 0 = 1 0000000
Número -10: 10001010 representaciones del 0.
+0 = 0 0000000
Número -10: 11110101 –0 = 1 11111111
El rango de representación para palabras de n bits es:
-2 n-1+ 1 <= X <= 2 n-1 -1 El rango de representación para n bits es:
Para el caso de 8 bits el rango es: -127 <= X <= 127 31
-2 n-1+ 1 <= X <= 2 n-1 -1 32
Para 8 bits el rango es: -127 <= X <= 127

Complemento a 2 (C-2)
Complemento a 2 (C-2) (cont.)
El bit que está situado más a la izquierda representa Segundo paso: Al resultado obtenido en el primer paso se
le suma 1, despreciando el ultimo acarreo si existe.
el signo, y su valor será de 0 para el positivo y de 1 Número -10: 11110101
para el negativo. + 1
Para los números positivos el resto de los bits (n-1) 11110110
representan el módulo del número. El rango de representación es asimétrico, lo que constituye su mayor
El negativo de un número positivo se obtiene en dos inconveniente y viene dado por la fórmula:
pasos: -2 n-1 <= X <= 2 n-1 -1
Para el caso de palabras de 8 bits el rango es: -128 <= X <= 127
Primer paso: Se complementa el número positivo en La principal ventaja es la de tener una única representación del cero:
todos sus bits, incluido el bit de signo, es decir, se En el caso de palabras de 8 bits tendríamos:
realiza el "complemento a 1". Número 0 00000000
Número -0 Primer paso 11111111
Número 10: 00001010 Segundo paso 11111111
Número -10: 11110101 + 1
10 0 0 0 0 0 0 0
33 34.
El último acarreo se desprecia por lo tanto, el 0 y el -0 tienen una sola representación

Exceso a 2 elevado a la n-1


Conclusiones
Este método no utiliza ningún bit para el signo, con El Complemento a 2 es el más
lo cual todos los bits representan un módulo o valor
que corresponde al número representado más el utilizado.
exceso.
Resuelve todas las operaciones con
Exceso para n bits: 2n-1.
sumas.
Exceso para 8 bits: 28-1 = 27 = 128.
Número 12 ( 12 + 128) = 140: 1 0 0 0 1 1 0 0 Reduce la complejidad de los circuitos de
Número -12 (-12 + 128) = 116: 0 1 1 1 0 1 0 0 la unidad aritmética lógica

El rango de representación es asimétrico y viene dado por: La representación en exceso se utiliza


-2n-1 <= X <= 2 n-1 -1 para la representación del exponente de
Para el caso de 8 bits el rango es: -128 <= X <= 127 los datos del tipo real.
35 36

6
3/28/2011

Límites y desbordamientos
Límites y desbordamientos
Límite inferior N (min)
Longitud de Límite superior
palabra N (max) Complemento a 1 Complemento a 2 Datos enteros representables

8
127 -127 -128 Desbordamiento Desbordamiento

16
32.767 -32.767 -32.768
-Y +Y
32 N (Min) N (Max)
2.147.483.649 -2.147.483.649 -2.147.483.650
0
64
9,223372 * 1018 -9,223372 * 1018 -9,223372 * 1018

Si como resultado de las operaciones, se obtiene un número fuera


Importante: Los valores a representar dependen de la de los límites, se dice que se ha producido un desbordamiento.
cantidad de bits de la palabra.
37 38

Representación de números
reales Coma flotante
Notación Exponencial
Cuando se opera con números muy grandes o muy La notación exponencial también se conoce como
pequeños se suele utilizar la notación exponencial. notación científica o notación en coma flotante,
Un número se puede representar de diferentes formas, el dado que parece como si la coma decimal flotase de
exponente indica los lugares que se corre la coma decimal. derecha a izquierda y al revés al cambiar el valor del
Ejemplo: exponente.
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 40

Notación científica (Calculadora) Notación Exponencial Normalizada

En notación científica estándar, los números se


expresan de la forma: Se llama así a la representación en la
N= +- m E +-p = +- m * 10 +- p que la mantisa no tiene parte entera
y el primer dígito a la derecha del
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 (-) punto decimal es significativo
(distinto de cero), salvo en la
Ejemplo: -246,36 = -2,4636 E+2 = -2,4636 * 10 2
representación del número 0.
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 42

7
3/28/2011

Cómo se escribe un número en punto


Notación Exponencial Normalizada
flotante normalizado?
Ejemplo: 1. Se escribe el número en el sistema
Representación del número decimal 728,3 con base
propuesto para la mantisa.
de exponenciación 10.
728,3 = 7283 * 10(-1) = 728,3 * 10(0) = 72,83 * 2. Se desplaza la coma y se cambia el
10(1) = exponente hasta obtener la forma
= 7,283 * 10(2) = normalizada.
= 0,7283 * 10(3) notación exponencial 3. Se convierte el exponente al sistema
normalizada
Existen distintos valores de mantisa y exponente para
propuesto para él.
representar el mismo número. Lo mismo sucede en base 2 .

43 44

Normalización y el esquema de bit Normalización y el esquema


implícito (1) de bit implícito (2)
Si la mantisa se representa como número Si en un formato la mantisa luego de
binario y si la condición de normalización
consiste en que la mantisa normalizada la normalización se representa como :
comience siempre con 1, entonces no hay
necesidad de almacenar ese 1. 0,11010
La mayoría de las representaciones en punto El patrón a ser almacenado es 1010
flotante no almacenan dicho bit inicial.
Se lo “recorta” antes de empaquetar el número El bit mas significativo se trunca, se
para su almacenamiento y se lo recupera al “esconde”.
desempaquetar.
Se obtiene un bit adicional a la derecha de la Luego veremos que la IEEE 754 utiliza
mantisa.
El bit así eliminado se denomina bit implícito.
este concepto.

45 46

Procesamiento de la coma flotante


Normalización IEEE 754
La representación y manejo de los datos puede ser
responsabilidad del hardware de la computadora o de los
traductores de lenguajes.
Existen muchas formas de representación en
Los microprocesadores actuales disponen internamente un coma flotante, según:
procesador de coma flotante (Float Point Unit) que contiene
circuitos aritméticos para operar con este tipo de datos. la longitud de la palabra de la computadora,

Los primeros microprocesadores no incluían la FPU y esa la base de exponenciación, el nro de dígitos reservados para la mantisa
función cumplían los coprocesadores matemáticos. y el
exponente (MS, C-1 ó C-2), etc. La coma flotante puede definirse
Si el hardware no dispone de circuiteria para coma flotante y particularmente en cada caso.
el lenguaje de programación incluye este tipo de datos, el
traductor debe descomponer las instrucciones en formatos El IEEE (Instituto de Ingeniería Eléctrica y Electrónica) ha
operables por los circuitos de la máquina, disminuyendo el
rendimiento del procesamiento. creado un estándar sobre la presentación de números en
coma flotante. Este estándar especifica como deben
Hasta la década de los 80, cada fabricante de computadoras representarse los números en coma flotante con simple
utilizaba un sistema propio para la representación de los precisión (32 bits) o doble precisión (64 bits), y también
números reales, luego surgió la necesidad de un sistema cómo deben realizarse las operaciones aritméticas con ellos.
normalizado en el que trabajó la asociación IEEE.
47 48

8
3/28/2011

Normalización IEEE 754


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:
La base del exponente es B=2, es N = +/- M * 2E .
un campo del signo (s) que ocupa 1 bit,
decir está predeterminada: un campo del exponente (o característica, e), que ocupa ne
bits y
N = ±M W 2E un campo de la mantisa (m), que ocupa nm bits.
Se verifica: n = 1 +ne+ nm

de esta forma sólo es necesario


almacenar, de alguna forma, el
signo, M y E
El orden de almacenamiento es: campo de signo (s), campo de
exponente (e) y campo de mantisa (m).
49 50

Normalización IEEE 754 Normalización IEEE 754


Campo del signo. El bit de signo es cero Ejemplos: S= 28-1 – 1 = 127
para los números positivos y uno para los
números negativos. Exponente (E) Exponente Exponente
Campo del exponente. El exponente se sesgado Almacenado
almacena en la forma de "entero sesgado“: 0 127 + 0= 127 0111 1111
S = 2ne-1-1 ;
e = S + E = 2 ne-1+E-1,
+2 127 + 2= 129 1000 0001
de esta forma en los ne bits reservados
para el exponente se pueden incluir
exponentes positivos o negativos sin -126 127 – 126= 1 0000 0001
utilizar un bit explicito de signo.
51 52

Normalización IEEE 754 Normalización IEEE 754


Campo de la mantisa Precisiones usuales en IEEE754
el exponente se ajusta de forma tal que el 1 Simple Precisión: exige una cadena de 32
más significativo de la mantisa se encuentre en bits. El primer bit es el bit de signo (S), los
la posición 0 (posición de las unidades); es
decir, 1 X M < 2. siguientes 8 son los bits del exponente (E) y los
restantes 23 son la mantisa (M):
El campo de la mantisa se obtiene almacenando
sólo la parte fraccionaria del número Doble precisión: exige una cadena de 64 bits.
normalizado; es decir, no se almacena la El primer bit es el bit de signo (S), los siguientes
información "1”, porque todas las mantisas 11 son los bits del exponente (E) y los restantes
normalizadas comienzan con 1
52 son la mantisa (M)
Reajustar mantisa y exponente de forma tal que
se verifique:M = [1.m], con 1 ^ M < 2

53 54

9
3/28/2011

Simple precisión (32 bits) Simple precisión (32 bits)

Signo Exponente Mantisa


31 30 - 23 22 - 0
Exponente: 8 bits. Se utiliza una representación conocida Ejemplo:
como “sesgada”.
El sesgo toma el valor (2k-1 – 1), donde k es el número de 0,0000101 ->
bits disponibles para la representación del exponente. En este
caso 28-1 – 1 = 127. Este sesgo se suma al exponente original, y en coma flotante 0,101 * 2 -4
el resultado es el que se almacena: E = EO + S
Mantisa: 23 bits. Bit implícito 24 bits efectivos. Está 0,0000101->
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 en flotante normalizado 1,01 * 2 -5
almacenan.
Note que la coma está a la derecha del primer dígito significativo.

55 56

Doble precisión (64 bits) Casos especiales en IEEE 754


Tanto en precisión doble como en simple, existen algunos casos
Signo Exponente Mantisa especiales que dependen de los valores del signo, del exponente y de la
mantisa:
63 62-52 51-0
Exponente: 11 bits. Sesgo 211-1 – 1 =
1023
Mantisa: 52 bits. Bit implícito 53 bits
efectivos. Igual consideración para la
normalización.

57 58

Casos especiales en IEEE 754 Normalización IEEE 754


Precisiones usuales en IEEE754
Ver con detalle las dos últimas filas:
Valores límites: Con toda representación se
Cuando todos los bits del exponente son ceros obtienen unos valores máximos y mínimos
(00...0), esto quiere decir que no se está utilizando representables que para precisión simple
bit implícito. Si, además, la mantisa es todo ceros son:
(00...0), el número representado es el cero (0), pero
si la mantisa es distinta de todo ceros, el número que Número Mayor (N max) 3,402823466 . 1038
se está representando es muy pequeño, de tal forma Número menor normalizado (N min, nor )
que, el exponente valdrá -126 ó -1022, dependiendo 1,2 . 10-38
de si el número está escrito en precisión simple o Número menor denormalizado (N min, den)
doble, respectivamente. 1,1401. 10-45
59 60

10
3/28/2011

Normalización IEEE 754 Normalización IEEE 754


Observar que los números reales que Los nros menores que –N(max) y
cumplen las siguientes condiciones no
mayores que N(Max) con N distinto de
pueden ser representados:
infinito positivo o negativo.
Números comprendidos entre –N(min,den)
y N(Min,den) con N distinto de cero. Si como resultado de una operación el
número N tiene que caer en esa zona,
Si como resultado de una operación el
número N tiene que caer en esa zona, se
se dice que se produce un
dice que se produce un agotamiento desbordamiento (overflow)
(underflow).

61 62

Normalización IEEE 754 Ejemplo 1: (i)


Para escribir el número
101110,0101011101000011111000
011111000100112
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,011100101011101000011111000
011111000100112 x 25
63 64

Ejemplo 1: (ii) Ejemplo 1: (iii)


El resto de bits no se pueden representar, ya
El exponente, en Exceso a 2n-1-1, será: que, no caben en la mantisa.
Sin embargo, si la mantisa se normaliza
510 + (28-1 - 1)10 = 510 + (27 - 1)10 = situando la coma decimal a la derecha del bit
510 + (128 - 1)10 = 13210 = más significativo, dicho bit siempre vale 1. Por
tanto, se puede prescindir de él, y tomar en su
10000100 (Exceso a 127) lugar un bit más de la mantisa la precisión
del número representado es mayor.
De la mantisa se toman los bits 23 bits Así, los bits de la mantisa serán:
más significativos: 01110010101110100001111
Al bit omitido se le llama bit implícito. Por otra
1,0111001010111010000111 parte, el bit de signo vale 0, ya que, el número
es positivo.

65 66

11
3/28/2011

Ejemplo 1: (iV) Ejemplo 1: (V)


En consecuencia, el número se puede
representar como:

De esta manera:
Los programadores, para representar a los
números reales en este formato, suelen
utilizar el Sistema Hexadecimal. 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
67 68

Ejemplo 2: (i) Ejemplo 2:(ii)


d) Ahora se calcula el valor del exponente
Dado el número +1011010010001 convertirlo a
formato de simple precisión según estándar IEEE Exponente 12
754. Exponente 12+ 127 = 139
a) Se trata de un número positivo bit de signo 0 Exponente 10001011
b) El siguiente paso consiste en normalizar el número e) Con todo lo anterior se puede representar el
1011010010001 1, 011010010001* 2 12 número original:
c) El valor de la mantisa será entonces: 010010001 0 10001011 011010010001
(considerando el bit implícito)
S Exponente Mantisa

69 70

Ejemplo 3: (i) Ejemplo 3: (ii)


Dado el número 805C0000CFL del estándar IEEE754 con precisión 3º) Al observar que todos los bits del exponente son ceros (00000000) y
simple, exponente en Exceso a 2n-1-1 y mantisa en Magnitud y Signo con la mantisa es distinta de todo ceros, se deduce que es un caso especial. Se
bit implícito, para averiguar a qué número representa en base 10, se está representado a un número muy pequeño sin bit implícito y, por tanto,
pueden realizar los siguientes pasos: el exponente es -126.

1º) Convertir 805C000016 a base 2: 4º) En notación exponencial, puesto que en este caso no se utiliza bit
implícito, la mantisa se escribe con un cero (0), seguido de la coma
decimal (,) 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:


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

71 72

12
3/28/2011

Observaciones finales Observaciones finales


Un buen programador debe tener en cuenta cómo se almacenan c) 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 (un
los números reales en la computadora, ya que se pueden presentar
intervalo de la recta real), por lo que en general una mantisa decimal
problemas inherentes a la forma en que se representan los no puede representarse exactamente con nm bits, con lo que genera
números (con un número limitado de bits). Dificultades: un error "de representación".

Al obtener, en resultados intermedios, números excesivamente 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 o
pequeños. Esto puede ocurrir por restar dos números muy iguales
procedimientos distintos), ya que el computador considera que dos
o por la división entre números en los que el divisor es mucho números son iguales únicamente si son iguales todos sus bits.
mayor que el dividendo. Puede perderse entonces la precisión de
los cálculos o producirse un desbordamiento a cero o agotamiento. Las detecciones de igualdades deben hacerse con números enteros o
considerando que dos números son iguales si la diferencia entre ellos
es menor que un valor dado.
Por la obtención de resultados numéricos excesivamente altos, es
decir por desbordamiento. Esto ocurre, por ejemplo, al dividir un d) Una consecuencia de lo dicho anteriormente es que, la suma y
número por otro mucho menor que él o al efectuar sumas o multiplicación de datos de tipo real no siempre cumplen las
productos sucesivos con números muy elevados. propiedades asociativas y distributiva, se pueden obtener resultados
distintos dependiendo del orden en que se realizan las operaciones.

73 74

13

También podría gustarte