Upload
g7dai
View
2.464
Download
10
Embed Size (px)
Citation preview
Representación interna de la información
Juanjo AlfonsoJuan Ballester
Freyder Espinosa
2.1 Complemento a 2 (C-2) Este sistema de representación utiliza el bit de mas a la izquierda
para el signo, correspondiendo el 0 para el signo + y el 1 para el signo -.
En el caso de los números positivos, los n-1 bits de la derecha representan el modulo.
El negativo de un numero se obtiene en dos pasos: 1- Se complementa el numero positivo en todos sus bits
(cambiando ceros por unos y viceversa), incluido el bit de signo, es decir, se realiza el complemento a 1.
2-Al resultado obtenido anteriormente se le suma 1 (en binario) despreciado el ultimo acarreo si existe.
Si vemos la representación en complemento a 2 de los números 10 y -10 en el caso de = 8 bits:
Numero 10 0 0001010
signo + modulo
Numero -10 1 0001010
signo - modulo
El rango de representación en este caso es asimétrico, este representa su mayor inconveniente, su formula viene
dada de la siguiente manera.
-2n-1 < x < 2n-1 = 1
Para el caso de n = 8 bits, tendremos:
-128 < x < 127
2.2 Modulo y signo (MS) Este sistema de representación, el bit que esta situado
mas a la izquierda representa el signo, y su valor será 0 para el signo + y 1 para el signo -. El resto de bits (n-1) representan el modulo del numero.
Primer 0 seria signo, el resto el numero: 0 001010
2.3 Exceso Z Este método de representación no utiliza ningún bit para
el signo, con lo cual todos los bits representan un modulo o valor. Este valor se corresponde con el numero representado mas el exceso, que para n bits viene dado por 2n-1.
Por ejemplo, para n = 8 bits el exceso es de 28-1 = 27 = 128, con lo cual el numero 10 vendrá representado por 10 + 128 = 138 (en binario); para el caso del numero -10 tendremos -10 + 128 = 118 (en binario).
Viendo sus representaciones:
Numero 10: 1 0 0 0 1 0 1 0Numero -10: 0 1 1 1 0 1 0 1
En este caso, el 0 tiene una única representación, siendo para n = 8 bits:
Numero 0 (0 + 128): 1 0 0 0 0 0 0 0
El rango de representación en este caso es asimétrico, este representa su mayor inconveniente, su formula viene
dada de la siguiente manera.
-2n-1 < x < 2n-1 = 1
Para el caso de n = 8 bits, tendremos:
-128 < x < 127
Resulta interesante observar que todo numero representado en exceso Z tiene la misma
representación que en complemento a 2 con el bit de signo cambiado (primer bit de la izquierda).
8 bits Valor Ca1 Ca2 MS Exceso Z
55 00110111 00110111 00110111 10110111-55 11001000 11001001 10110111 01001001-25 11100110 11100111 10011001 0110011128 00011100 00011100 00011100 10011100-26 11100101 11100110 10011010 01100110 28 00011100 00011100 00011100 10011100
-102 00011001 00011010 11100110 0001101028 00011100 00011100 00011100 10011100
102 01100110 01100110 01100110 11100110-100 00011011 00011100 11100100 00011100-128 011111111 10000000 -------- 00000000
0 00000000 00000000 00000000 10000000127 01111111 01111111 01111111 11111111
0 00000000 00000000 00000000 10000000 -0 11111111 -------- 10000000 --------
255 11111111 11111111 11111111 --------0 00000000 00000000 00000000 10000000
-128 01111111 10000000 -------- 00000000-1 11111110 11111111 10000001 01111111
-255 00000000 00000001 -------- 11111111-127 10000000 10000001 -------- 00000001
-0 11111111 -------- 10000000 --------0 00000000 00000000 00000000 10000000
127 01111111 01111111 01111111 01111111127 011111111 01111111 01111111 01111111
Números reales
Los números reales pueden ser números racionales o irracionales. Los números racionales son aquellos que pueden expresarse como el cociente de dos números enteros, tal como 3/4, -21/3, 5, 0,1/2…… mientras que los irracionales son todos los demás.
Los números racionales también pueden describirse como aquellos cuya representación decimal es eventualmente periódica, mientras que los irracionales tienen una expansión decimal aperiódica:
Ejemplos:
1/4 = 0,250000... Es un número racional puesto que es periódico a partir del tercer numero decimal.5/7 = 0,7142857142857142857.... Es racional y tiene un período de longitud 6 (repite 714285). √7+1= 1,456465591………. es irracional y su expansión decimal es aperiódica.
3
Representación de números reales
• Cualquier número N puede representarse de la forma N= M * BE
N = Número a representarM= Mantisa
B= Base del sistema
E= Exponente
Por ejemplo: N= 5437,8932 = 5,4378932 * 103
Esta normalización viene estipulada por el IEEE ( Institute of Electric and Electronic Engineers), una asociación técnico-profesional mundial dedicada a la estandarización, entre otras cosas. Es la mayor asociación internacional sin fines de lucro formada por profesionales de las nuevas tecnologías, como ingenieros eléctricos, ingenieros en electrónica, científicos de la computación…..
Su creación se remonta al año 1884, contando entre sus fundadores a personalidades de la talla de Thomas Alva Edison, Alexander Graham Bell……Hoy en día está formada por mas de 360000 voluntarios de unos 175 países y su trabajo es promover la creatividad, el desarrollo y la integración, compartir y aplicar los avances en las tecnologías de la información, electrónica y ciencias en general para beneficio de la humanidad y de los mismos profesionales.
Muchas aplicaciones requieren trabajar con números que no son enteros. Existen varias formas de representar números no enteros. Una de ellas es usando una coma fija.Este tipo de representación ubica siempre el punto o coma en alguna posición a la derecha del dígito menos significativo.Otra alternativa comúnmente usada es la que se conoce como representación en coma flotante. Bajo este esquema, un número puede ser expresado mediante un exponente y una mantisa. Por ejemplo el número 10.75 puede ser expresado como 10.75 * 10^0 o como 1.075 * 10^1.
Dado que un número en punto flotante puede expresarse de distintas formas que son equivalentes, es necesario establecer una única representación. Es por ello que se trabaja con números normalizados. Decimos que un número está normalizado si el dígito a la izquierda del punto o coma está entre 0 y la base.En particular, decimos que un número binario está normalizado si el dígito a la izquierda del punto es igual a 1.
1.00 * 10^1- -----NORMALIZADO0.01 *10^-2 - -----NO NORMALIZADO
Este estándar se desarrolló para facilitar la portabilidad de los programas de un procesador a otro y para alentar el desarrollo de programas numéricos sofisticados. Este estándar ha sido ampliamente adoptado y se utiliza prácticamente en todos los procesadores actuales. El estándar del IEEE define el formato para precisión simple de 32 bits y para precisión doble de 64 bits.
• Precisión Simple
Signo: Se encuentra en el bit más significativo.Exponente: Está conformado por los siguientes 8 bits de modo que el exponente mas negativo posible es 0000 0001 y el mas grande de los positivos es 1111 1110Mantisa: Que queda representada en los 23 bits restantes
Signo Exponente con signo Mantisa
1 bit 8bits 23 bits + el implícito
Estándar IEEE-754 para representación de Punto Flotante
• Precisión doble
Igualmente la precisión doble está formado por los mismos parámetros:Signo: Que también se encuentra en el bit más significativo.Exponente: Está conformado por los siguientes 11 bits. Se utiliza unarepresentación en exceso 1023 de forma que el exponente más negativo posible quede en 000 0000 0001 y el más grande de los positivos en 111 1111 1110.Mantisa: Que en esta ocasión quedará representada en 52 bits.
Signo Exponente Mantisa
1 bit 11 bits 52 bits + el implícito
La siguiente tabla muestra los rangos de representación de las precisiones simple y doble:
Límites representables en el IEEE-754
Precisión Negativos Positivos
Simple [-(2-2 -23) * 2127, -(2 -126) ] [2 -126, (2-2-23) * 2 127]
Doble [2-1022, (2 – 2-52) *2 1023] [2-1022, (2-2-52) * 2 1023]
Para el caso concreto de la precisión simple, hay cinco rangos numéricos que sonimposibles de representar.
1. Números negativos menores que -(2-2-23)*2127. Producen un desbordamientonegativo.2. Números negativos mayores que -2-126. Producen un desbordamiento por abajo.3. El número cero.4. Números positivos menores que 2-126. Producen un desbordamiento por abajo.5. Números positivos mayores que (2-2-23)*2127. Producen un desbordamientopositivo.
El número cero no puede ser representado con este esquema debido a la utilización de la técnica del bit escondido. Para solventar este problema se le asigna un código especial en el que tanto la mantisa como el exponente tienen todos sus bits a cero y el bit de signo es indeterminado (con lo que el cero tiene dos posibles representaciones).Otros dos valores a los que se les asigna un código especial son +∞ y -∞ que secodifican con el pertinente bit de signo, el exponente con todo unos y la mantisa con todo ceros.
Otro caso especial a considerar con esta codificación es cuando se produce un resultado que es imposible de representar. Para esta situación se utiliza la notación “NaN” (acrónimo de Not a Number). Estos valores a su vez se dividen en dos categorías dependiendo si el resultado es indeterminado o inválido y se denotan respectivamente por los símbolos “QNaN” y “SNaN”.
Procedamos pues a representar en formato coma flotante algunos números en base decimal como muestra:
+118
1er paso: convertir el número a binario 7 = 1110110 2º paso: normalizamos el número 1.1110110 * 10^6 3er paso: calculamos el exponente con exceso 127 para precisión simple 6 + 127 = 133 = 1000010 1 así pues tenemos que:
0 10000101 11101100000000000000000
Signo Exponente en exceso Mantisa
Pongamos otro ejemplo un poquito mas complicado:
-118.625
- 1er paso: Convertimos ambas partes de la expresión en binario118= 1110110 y 0.625 = 101 por lo tanto 118,625= 1110110,101.Para hallar el valor de 0.625 en binario: 0.625 * 2 = 1.25
(1.25-1) * 2 = 0.5(0.5 – 0) * 2 = 1
- 2º paso: Normalizamos el número: Es decir, correremos la coma hacia la izquierda tantas veces como sea necesario hasta lograr que delante de ella solo quede un 1. Han sido 6 posiciones, por tanto: 1,110110101 * 10^6
- 3er paso: Calculamos el exponente con exceso 127. 6 + 127= 133= 10000101
1 10000101 11011010100000000000000
Signo Exponente en exceso Mantisa
PROCEDIMIENTO PARA PASAR DE COMA FLOTANTE A DECIMAL
1º.- Se Identifican los campos del número binario
1 10000001 1.10001000000000000000000
Signo de la mantisa Exponente representado en exceso 127Mantisa normalizada con bit implícito
Ej. Pasar a coma flotante11000000110001000000000000000000
2º.- Se convierten cada uno de los campos a decimal
1 Mantisa negativa⇒
10000001(2 129 +2⇒ ⇒
1.10001000000000000000000(2 1,10001000000000000000000(2⇒
PROCEDIMIENTO PARA PASAR DE COMA FLOTANTE A DECIMAL
Con exponente +2 hay que desplazar la coma a la derecha(+2)2posiciones.
⇒110,001000000000000000000(2 ⇒ 6,125(10
3º.- El número final es la combinación de todos los valores de todos los valores de los campos -6,125
PROCEDIMIENTO PARA PASAR DE COMA FLOTANTE A DECIMAL
1º El bit 31 tomará el valor del signo de la mantisa. (-6,125 ⇒ - ⇒ 1)
2º.- Pasar a binario la mantisa decimal.6=1100,125=0,001 que se obtiene de multiplicar por 2 sucesivamente, donde
la parte entera del producto es la que va a constituir el número que buscamos y utilizamos solo la parte decimal que es nuestro siguiente factor hasta alcanzar la unidad.
0,125*2= 0,250,25*2= 0,50,5 *2= 1
6,125=110,001(2
PROCEDIMIENTO PARA PASAR DE DECIMAL A COMA FLOTANTE
Con el número del ejemplo anterior -6,125
3º Normalizar. Correr la coma a derecha o izquierda hasta convertir el número binario en un numero de la forma 1,… … ..
El número de desplazamientos va a dar valor al exponente de forma que:Desplazamiento a la derecha Exponente negativo⇒Desplazamiento a la izquierda Exponente positivo⇒6,125=110,001(2 1,10001 Exponente = 2⇒ ⇒2 expresado en exceso 127 129 ⇒ ⇒ 10000001(2
PROCEDIMIENTO PARA PASAR DE DECIMAL A COMA FLOTANTE
4º.- Mantisa representada con bit implícito ⇒ 1,10001 10001 ⇒(el bit 1 de la parte entera no se representa)
5º.- El número final es 1 10000001 10001000000000000000000 (Se agregan a la derecha los “0” necesarios para completar los 23 bits de la mantisa)
6º.- Pasado a hexadecimal 1 100 0000 1 100 0100 0000 0000 0000 0000 = C0C40000(16
PROCEDIMIENTO PARA PASAR DE DECIMAL A COMA FLOTANTE
0 10000101 11110101100000000000000
REPRESENTACION EN NOTACION DE COMA FLOTANTE DEL VALOR 125’815
11000111001110001110000000000000 Con el procedimiento anterior de coma flotante es -47328
Precisión Negativos PositivosSimple [-(2-2 -23) * 2127, -(2 -126) ] [2 -126, (2-2-23) * 2 127]
Doble [2-1022, (2 – 2-52) *2 1023] [2-1022, (2-2-52) * 2 1023]