Tema 2 Representación de la información Fundamentos de Informática. I.T.I. Mecánica e I.T.I....
-
Upload
basilio-tabora -
Category
Documents
-
view
8 -
download
1
Transcript of Tema 2 Representación de la información Fundamentos de Informática. I.T.I. Mecánica e I.T.I....
Tema 2
Representación de la información
Fundamentos de Informática. I.T.I. Mecánica e I.T.I. Química.
Curso 2010/2011Depto. de INFORMÁTICA UVA
Temas 2 y 3: Representación de la Información
2
Objetivos
Al terminar esta lección deberás ser capaz de:– Describir los problemas derivados del uso de precisión
finita en el ordenador– Describir el concepto de sistema de numeración y
enumerar los más utilizados en informática– Realizar cambios de base entre los sistemas de
numeración estudiados– Representar e interpretar el valor de números enteros y
reales utilizando los códigos más usuales en informática– Representar caracteres en el ordenador
Temas 2 y 3: Representación de la Información
3
Contenidos
1. Números de precisión finita
2. Sistemas de numeración
3. Representación de números enteros
4. Representación de números reales
5. Representación de caracteres
Temas 2 y 3: Representación de la Información
4
Números de precisión finita
El ordenador utiliza el sistema binario (0 y 1) para representar la información.
Los ordenadores almacenan los datos en registros de una longitud finita (8, 16, 32, … 256 bits). Esto significa que el número de dígitos con el que pueden operar es limitado.
Ejemplo: – Si un registro manejara 3 dígitos enteros decimales sólo se
podrían representar los números del 000 al 999.– Rango limitado: [000, 999]
Temas 2 y 3: Representación de la Información
5
Números de precisión finita
Precisión (p):Precisión (p): número de bits utilizado para representar información
Con p bits podemos codificar m = 2p símbolos distintos, por tanto, el conjunto de números que se pueden representar es limitado (finito)
(Operación inversa) Para codificar m símbolos distintos, necesitamos p bits, tal que p es el mínimo p que cumple: 2 p-1 < m <= 2p, que equivale a p >= log2 m = 3.32 · log (m), con p N
Temas 2 y 3: Representación de la Información
6
Números de precisión finita
Limitaciones– Desbordamiento (overflow): El resultado de una operación
es mayor que el máximo número representable con una determinada precisión p
– Agotamiento o subdesbordamiento (underflow): El resultado de una operación es menor que el mínimo representable con una precisión p
– Errores de redondeo: El resultado de una operación no es representable con la precisión utilizada. Hay que aproximar al número más cercano posible.
Temas 2 y 3: Representación de la Información
7
Números de precisión finita
Ejemplos (suponiendo dígitos decimales)– p = 3– Rango = [000, 999]– Ejemplo de overflow:
En teoría : 700 + (400 –300) = (700 + 400) – 300 En la práctica: 700 + 100 ≠
Overflow!
Temas 2 y 3: Representación de la Información
8
Números de precisión finita
Por lo tanto:– El uso de números de precisión finita limita la
aritmética de los ordenadores– Hay que tener en cuenta la posible aparición de
errores– Hay que idear recursos para trabajar con
números negativos y números reales
Temas 2 y 3: Representación de la Información
9
Contenidos
1. Números de precisión finita
2. Sistemas de numeración
3. Representación de números enteros
4. Representación de números reales
5. Representación de caracteres
Temas 2 y 3: Representación de la Información
10
Sistemas de numeración
Un sistema de numeración posee un conjunto de símbolos D– Cada dígito d es un símbolo de D
Un sistema en base b usa B símbolos– D= {0, .. , B-1}
Un número es una cadena de dígitos… d4d3d2d1d0,d-1d-2 ... di D
Punto decimal
Temas 2 y 3: Representación de la Información
11
Sistemas de numeraciónValor de un número en base b
Sea el número:
… d4d3d2d1d0,d-1 … / di D = 0, 1, 2, …, B-2, B-1
El valor que representa el número se calcula teniendo en cuenta la posición i de cada dígito, su valor, y el valor de la base B:
di * Bi = d4·B4+ d3·B3+ d2·B2+ d1·B1+ d0·B0+ d-1·B-1...
Punto decimal
Temas 2 y 3: Representación de la Información
12
Los más típicos en informática son:– Decimal B = 10– Binario B = 2– Octal B = 8– Hexadecimal B = 16
Para saber en qué sistema está representado el número se emplea un subíndice
– 10 para decimal Ej: 938 10
– 2 para binario Ej: 102
– 8 para octal Ej: 345 8
– H ó 16 para hexadecimal Ej: FA893 H
Sistemas de numeraciónSistemas más frecuentes
Temas 2 y 3: Representación de la Información
13
Sistemas de numeraciónSistemas más frecuentes
Decimal: – B = 10– D = {0,1,2,3,4,5,6,7,8,9}– Ejemplo
459,2 10 = 4·102 + 5·101 + 9·100 + 2·10-1 = 459,2 10 -459,2 10 = -1 * (4·102 + 5·101 + 9·100 + 2·10-1) = -459,2 10
Binario:– B = 2 – D = {0,1}– Ejemplo
101,12 = 1·22 + 0·21 + 1·20 + 1·2-1 = 5,5 10 -101,12 = -1 * (1·22 + 0·21 + 1·20 + 1·2-1) = -5,5 10
Temas 2 y 3: Representación de la Información
14
Sistemas de numeraciónSistemas más frecuentes (2)
Octal: – B = 8 – D = {0,1,2,3,4,5,6,7}– Ejemplo:
453,2 8 = 4·82 + 5·81 + 3·80 + 2·8-1 = 299,2510 -453,2 8 = -1 * (4·82 + 5·81 + 3·80 + 2·8-1) = -299,2510
Hexadecimal: – B = 16– D = {0,1,2,3,4,5,6,7,8,9,A, B, C, D, E, F}– Ejemplo:
1BA,F H = 1·162 + 11·161 + 10·160 + 15·16-1 = 442,937510 -1BA,F H = -1 * (1·162 + 11·161 + 10·160 + 15·16-1) = -442,937510
Temas 2 y 3: Representación de la Información
15
Sistemas de numeraciónEjemplo
102 <> 108 <> 1010 <> 10H
10 2 = 1·21 + 0·100 = 2 10
10 8 = 1·81 + 0·100 = 8 10
10 H = 1·161 + 0·100 = 16 10
10 10 = 1·101 + 0·100 = 10 10
Temas 2 y 3: Representación de la Información
16
Sistemas de numeraciónCambio de base
Decimal Hexadecimal
Octal Binario
Principio de la base
B y tomar residuos
Conversión por tabla (2)
Conversión por tabla (1)
Temas 2 y 3: Representación de la Información
17
Sistemas de numeraciónCambio de base
Binario, octal ó hexadecimal decimal– Aplicar el “Principio de la base”, es decir, aplicar
la fórmula:
– Ejemplos:7CDH = 7·162 + C·161 + D·160 =
= 7·256 + 12·16 + 13 =
= 199710
di Bi
Temas 2 y 3: Representación de la Información
18
Sistemas de numeraciónCambio de base
– 111012 =
= 1·24 + 1·23 + 1·22+ 0·21+ 1·20 =
= 24 + 23 + 22 + 1 =
= 16 + 8 + 4 + 1 = 2910
– 3718 =
= 3·82 + 7·81 + 1·80 =
= 3·64 + 7·8 + 1= 24910
Temas 2 y 3: Representación de la Información
19
Sistemas de numeraciónCambio de base
Binario Octal: a través de la tabla
Binario Octal Binario Octal
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7
Temas 2 y 3: Representación de la Información
20
Sistemas de numeraciónCambio de base
Binario Hexad. Binario Hexad.
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F
Binario Hexadecimal: a través de la tabla
Temas 2 y 3: Representación de la Información
21
Sistemas de numeraciónCambio de base
Binario a octal y hexadecimal (ejemplos)
11001,101 2 =
= 011 001, 101 2 = 31,5 8
= 0001 1001, 1010 2 = 19, A H
Octal y hexadecimal a binario (ejemplos)
AB,16 H = 1010 1011, 0001 0110 2
734 8 = 111 011 100 2
Temas 2 y 3: Representación de la Información
22
Sistemas de numeraciónCambio de base
De decimal a binario (1/2)– La parte entera del número se obtiene dividiendo
por B = 2 la parte entera del número decimal de partida y los sucesivos cocientes hasta que cociente sea 0 ó 1. Los residuos (restos) de estas divisiones son las cifras binarias. El último cociente será el bit más significativo (izda) y el primer residuo será el bit menos significativo (dcha).
Temas 2 y 3: Representación de la Información
23
Sistemas de numeraciónCambio de base
De decimal a binario (continuación)– La parte fraccionaria se obtiene multiplicando por
B = 2 sucesivamente la parte fraccionaria del número decimal de partida y las partes fraccionarias que se van obteniendo. El número lo componen las partes enteras (ceros o unos) de los productos obtenidos.
– El número completo se forma anexando la parte entera y la fraccionaria obtenidas, separadas por la coma decimal
Temas 2 y 3: Representación de la Información
24
Sistemas de numeraciónCambio de base
Cocientes Residuos
29 1
14 0
7 1
3 1
1 1
29,710 Parte entera Parte decimal
29,710 11101,10112
Productos Rdos
0,7 · 2 = 1,4 1
0,4 · 2 = 0,8 0
0,8 · 2 = 1,6 1
0,6 · 2 = 1,2 1
…
Temas 2 y 3: Representación de la Información
25
Contenidos
1. Números de precisión finita
2. Sistemas de numeración
3. Representación de números enteros
4. Representación de números reales
5. Representación de caracteres
Temas 2 y 3: Representación de la Información
26
Representación números enteros
Binario natural– Con p bits, Rango = [0, 2p-1]
– Ejemplo: Con p= 3 bits, rango = [0, 23-1] = [0,7]
– Problema: No permite representar números negativos.
0 2p -1
Rango
- +
Temas 2 y 3: Representación de la Información
27
Representación números enteros
Códigos para representar números enteros:– Signo-magnitud– Complemento a 1– Complemento a 2 – En exceso a N
Temas 2 y 3: Representación de la Información
28
Representación números enteros
Signo magnitud1. Bit más a la izquierda: bit de signo
0 para + y 1 para -
2. Resto de bits: valor absoluto
Ejemplos: 1101s-m = -510
-1010 (precisión 5 bits) = 11010s-m
-1010 (precisión 8 bits) = 10001010s-m
Temas 2 y 3: Representación de la Información
29
Representación números enteros
Signo magnitud– Rango con p bits = [- (2p-1-1), 2p-1-1]
EjemploCon p=5, rango = [-(25-1-1), 25-1-1] = [-15, 15]
0 2p-1 -1
Rango
- +
- (2p-1 -1)
Temas 2 y 3: Representación de la Información
30
Representación números enteros
Complemento a 1– Los números positivos se expresan igual que en
binario natural. – Para hacer los negativos se toma el
correspondiente positivo y se cambian los ceros por unos y viceversa
– Para todas las cantidades representadas, el bit de la izquierda vale 0 para el + y 1 para el -
Temas 2 y 3: Representación de la Información
31
Representación números enteros
Complemento a 1– Rango con p bits = [-(2p-1-1), 2p-1-1]
Ejemplo– Con p=5, rango = [-(25-1-1), 25-1-1] = [-15, 15]
0 2p-1 -1
Rango
- +
- (2p-1 -1)
Temas 2 y 3: Representación de la Información
32
Representación números enteros
Complemento a 2– Los números positivos se representan en
binario natural– Para representar un número negativo, se hace
el complemento a 1 y se suma 1 (en binario) – El bit de la izquierda vale 0 para los números
positivos y 1 para los negativos
Temas 2 y 3: Representación de la Información
33
Representación números enteros
Complemento a 2– Rango con p bits = [-2p-1, 2p-1-1]– Ejemplo:
– Con p= 5, rango = [-24, 24-1] = [-16, 15]
0 2p-1 -1
Rango
- +
- 2p-1
Temas 2 y 3: Representación de la Información
34
Representación números enteros
Ejemplos: Decimal a complemento a 2 (p=5 bits)- 1010 = C1 (01010) = 10101 + 1 = 10110c2
10 10 = 01010c2
Ejemplos: Complemento a 2 a decimal (p=5 bits)
00111c2 Empieza por 0 es positivo se interpreta en binario natural
Resultado: 00111c2 = 710
11011c2 Empieza por 1 es negativo Se complementa para hallar el
valor absoluto:
11011c2 = C1 (11011) + 1 = 00100 + 1 = 00101 = 5
Resultado: 11011c2 = - 510
Temas 2 y 3: Representación de la Información
35
Representación números enteros
Exceso a N– El sistema guarda el valor más N, de forma que
el número resultante es siempre positivo– Normalmente, si tenemos precisión p: N = 2p-1
– Rango = -2p-1, 2p-1 -1– Ejemplo: exceso a 128 (27)
–310 -3+128= 12510 (= 011111012)
Temas 2 y 3: Representación de la Información
36
Representación números enteros
Tabla de códigos, con p = 3
Nº decimal Signo-Magnitud
Complemento a 1
Complemento a 2
Exceso a N
3 011 011 011 111
2 010 010 010 110
1 001 001 001 101
0 000 000 000 100
-0 100 111 --- ---
-1 101 110 111 011
-2 110 101 110 010
-3 111 100 101 001
-4 --- --- 100 000
Temas 2 y 3: Representación de la Información
37
Contenidos
1. Números de precisión finita
2. Sistemas de numeración
3. Representación de números enteros
4. Representación de números reales
5. Representación de caracteres
Temas 2 y 3: Representación de la Información
38
Representación en punto flotante
La notación en punto flotante, exponencial o científica se usa con números reales.
– Por ejemplo, la magnitud 13257.3285 se puede expresar:13257.3285 = 13257.3285·100 = 132573.285·10 -1 = 132573285·10-4 = 1.32573285·104
Forma general: N = ±M·be
– ± → Signo del número – M → mantisa en valor absoluto– b → base – e → exponente
Se dice que el número está normalizadocuando el número más significativoestá en la cifra de las unidades
Temas 2 y 3: Representación de la Información
39
Representación IEEE 754
Representación normalizada. Base: 2 (no se representa)
N = ± M · 2e
Sólo es necesario representar el signo, la mantisa y el exponente
Temas 2 y 3: Representación de la Información
40
Representación IEEE 754
Se representa:– Un campo de signo que ocupa 1 bit– Un campo de exponente (c) que ocupa nc bits– Un campo de mantisa (m’) que ocupa nm bits
El orden de almacenamiento es: campo de signo (s), campo de exponente (e) y campo de mantisa (m).
1 nc nm
s c m'
Temas 2 y 3: Representación de la Información
41
Representación IEEE 754
Signo:– 0 para + y 1 para -
Exponente: – En exceso a N = 2 p-1-1, con p = número de
dígitos reservados para el exponente. El valor almacenado se denomina característica (c=e+N)
Temas 2 y 3: Representación de la Información
42
Representación IEEE 754
Mantisa:1. Se normaliza el número: El exponente se ajusta de
forma tal que el 1 más significativo de la mantisa se encuentre en la posición 0 (posición de las unidades)
2. El campo de la mantisa (m’) se obtiene almacenando sólo la parte fraccionaria del número normalizado. Es decir, no se almacena la información "1.”
Ejemplo: N = 1101.01 = 1.10101·23 m’ = 10101
Temas 2 y 3: Representación de la Información
43
Representación IEEE 754
Dos formatos:– Precisión simple (SP) y doble (DP)
Precisión simple: palabra de 32 dígitos– ns = 1 bits
– nc= 8 bits
– nm’= 23 bits
1 8 23
s c m'
Temas 2 y 3: Representación de la Información
44
Representación IEEE 754
Precisión doble: palabra de 64 dígitos– ns = 1bits
– nc= 11 bits
– nm= 52 bits
1 11 52
s c m'
Temas 2 y 3: Representación de la Información
45
Representación IEEE 754
Casos especiales:– Si c=111...1
Si m’ = 0 + ó - Si m’ <> 0 caracteres especiales
– Si c=0000...0. Excepción doble: Mantisa es 0.M’ Exponente: exceso N = 2p-1 - 2
Temas 2 y 3: Representación de la Información
46
Representación IEEE 754
Precisión simple (Resumen): – Exceso normal N = 27-1 = 127– Si c=255 y m’ <> 0 M = carácter especial– Si c=255 y m’ = 0 M = (-1)s · infinito– Si 0<c<255 M = (-1)s · 1,m’ · 2c-127
– Si c=0 y m’<>0 M = (-1)s · 0,m’ · 2c-126
– Si c=0 y m’ = 0 M = 0
Temas 2 y 3: Representación de la Información
47
Representación IEEE 754
Un buen programador debe tener en cuenta cómo se almacenan los nº reales en el computador, ya que se pueden presentar problemas inherentes a la forma en que se representan los nº (con un número limitado de bits).
Temas 2 y 3: Representación de la Información
48
Representación IEEE 754
Dificultades al obtener:– resultados intermedios, de números
excesivamente pequeños. Puede ocurrir al restar dos números casi iguales o al dividir si el divisor es mucho mayor que el dividendo. En estos casos puede perderse la precisión de los cálculos o producirse un desbordamiento a cero.
– resultados numéricos excesivamente grandes, es decir por desbordamiento. Por ejemplo, al dividir un número por otro mucho menor que él o al efectuar sumas o productos sucesivos con números muy elevados.
Temas 2 y 3: Representación de la Información
49
Representación IEEE 754
Dificultades al comparar dos números :– En general una mantisa decimal no puede representarse
exactamente con nm bits, lo que genera un error "de representación". Esto da lugar a problemas al comparar la igualdad entre ellos (máxime si los números se han obtenido con procedimientos distintos), ya que el computador considera que dos números son iguales únicamente si son iguales todos sus bits.
– Luego, la detección de igualdades debe hacerse con números enteros o considerando que
x=y si y solo si |x-y| <error
Temas 2 y 3: Representación de la Información
50
Contenidos
1. Números de precisión finita
2. Sistemas de numeración
3. Representación de números enteros
4. Representación de números reales
5. Representación de caracteres
Temas 2 y 3: Representación de la Información
51
Códigos alfanuméricos
Los caracteres alfanuméricos se codifican mediante un número entero.– Caracteres alfabéticos– Caracteres numéricos– Caracteres de control– Caracteres especiales
Códigos: ASCII, Unicode
Temas 2 y 3: Representación de la Información
52
Códigos alfanuméricos
ASCII: (American Standard Code for Information Interchange)
Muy utilizado 7 bits 27 caracteres = 128 caracteres Código ASCII extendido: 8 bits 28 = 256
caracteres
Temas 2 y 3: Representación de la Información
53
Códigos alfanuméricos
Código ASCII
Temas 2 y 3: Representación de la Información
54
Códigos alfanuméricos
Código de algunos caracteres:
Carácter Código Carácter Código
‘a’ 97 ‘z’ 122
‘A’ 65 ‘Z’ 90
‘0’ 48 ‘9’ 57
NUL 0
Temas 2 y 3: Representación de la Información
55
Códigos alfanuméricos
Inconvenientes del código ASCII (sobre todo con Internet):
– Los símbolos codificados son insuficientes para representar los caracteres especiales que requieren numerosas aplicaciones.
– Los símbolos y códigos añadidos en la versión ampliada a 8 bits no están normalizados.
– Están basados en los caracteres latinos, existiendo otras culturas que utilizan otros símbolos muy distintos.
– Los lenguajes escritos de diversas culturas orientales, como la china, japonesa y coreana se basan en la utilización de ideogramas o símbolos, siendo, por tanto, inoperantes los códigos que sólo codifican letras individuales.
Temas 2 y 3: Representación de la Información
56
Códigos alfanuméricos
Unicode (ISO/IEC 10646) – Propuesto por un consorcio de empresas y entidades que
trata de hacer posible escribir aplicaciones que sean capaces de procesar texto de muy diversas culturas.
– Propiedades buscadas: 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 (idiogramascon imagen distinta, tienen igual código), y Uniformidad, ya que todos los símbolos se representan con
un número fijo de bits (16).
Temas 2 y 3: Representación de la Información
57
Bibliografía
Prieto et al. “Introducción a la informática”, McGraw Hill