Download Tema 1

Document related concepts

Precisión simple en coma flotante wikipedia , lookup

Representación de números con signo wikipedia , lookup

IEEE coma flotante wikipedia , lookup

Código binario wikipedia , lookup

Sistema octal wikipedia , lookup

Transcript
Tema 2
Representación
de la información
Depto. de INFORMÁTICA UVA
Fundamentos de Informática.
I.T.I. Mecánica e I.T.I. Química.
Curso 2010/2011
Temas 2 y 3: Representación de la Información
Objetivos

Al terminar esta lección deberás ser capaz de:
–
–
–
–
–
2
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
Contenidos
1.
2.
3.
4.
5.
3
Números de precisión finita
Sistemas de numeración
Representación de números enteros
Representación de números reales
Representación de caracteres
Temas 2 y 3: Representación de la Información
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:
–
–
4
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
Números de precisión finita



5
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
Números de precisión finita

Limitaciones
–
–
–
6
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
Números de precisión finita

Ejemplos (suponiendo dígitos decimales)
–
–
–
p=3
Rango = [000, 999]
Ejemplo de overflow:


7
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
Números de precisión finita

Por lo tanto:
–
–
–
8
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
Contenidos
1.
2.
3.
4.
5.
9
Números de precisión finita
Sistemas de numeración
Representación de números enteros
Representación de números reales
Representación de caracteres
Temas 2 y 3: Representación de la Información
Sistemas de numeración

Un sistema de numeración posee un
conjunto de símbolos D
–

Un sistema en base b usa B símbolos
–

Cada dígito d es un símbolo de D
D= {0, .. , B-1}
Un número es una cadena de dígitos
… d4d3d2d1d0,d-1d-2 ...  di  D
Punto decimal
10
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Valor 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
11
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Sistemas más frecuentes

Los más típicos en informática son:
–
–
–
–

B = 10
B=2
B=8
B = 16
Para saber en qué sistema está representado el
número se emplea un subíndice
–
–
–
–
12
Decimal
Binario
Octal
Hexadecimal
10 para decimal
2 para binario
8 para octal
H ó 16 para hexadecimal
Ej: 938 10
Ej: 102
Ej: 345 8
Ej: FA893 H
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Sistemas más frecuentes

Decimal:
–
–
–
B = 10
D = {0,1,2,3,4,5,6,7,8,9}
Ejemplo



Binario:
–
–
–
B=2
D = {0,1}
Ejemplo


13
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
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
Sistemas de numeración
Sistemas más frecuentes (2)

Octal:
–
–
–
B=8
D = {0,1,2,3,4,5,6,7}
Ejemplo:



Hexadecimal:
–
–
–
B = 16
D = {0,1,2,3,4,5,6,7,8,9,A, B, C, D, E, F}
Ejemplo:


14
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
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
Sistemas de numeración
Ejemplo
102 <> 108 <> 1010 <> 10H
15

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
Sistemas de numeración
Cambio de base
Decimal
Hexadecimal
Principio de la base
  B y tomar residuos
Conversión por tabla (1)
Conversión por tabla (2)
Octal
16
Binario
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Cambio de base
Binario, octal ó hexadecimal  decimal

–
Aplicar el “Principio de la base”, es decir, aplicar
la fórmula:
 di  Bi
–
Ejemplos:
7CDH = 7·162 + C·161 + D·160 =
= 7·256 + 12·16 + 13 =
= 199710
17
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Cambio de base
–
–
18
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
Sistemas de numeración
Cambio de base

19
Binario  Octal: a través de la tabla
Binario
000
Octal
0
Binario
100
Octal
4
001
010
011
1
2
3
101
110
111
5
6
7
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Cambio de base

20
Binario  Hexadecimal: a través de la tabla
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
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Cambio 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

21
Temas 2 y 3: Representación de la Información
Sistemas de numeración
Cambio de base

De decimal a binario (1/2)
–
22
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
Sistemas de numeración
Cambio de base

De decimal a binario (continuación)
–
–
23
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
Sistemas de numeración
Cambio de base
29,710
Parte entera
Cocientes
Residuos
Productos
Rdos
29
1
0,7 · 2 = 1,4
1
14
0
0,4 · 2 = 0,8
0
7
1
0,8 · 2 = 1,6
1
3
1
0,6 · 2 = 1,2
1
1
1
…
29,710  11101,10112
24
Parte decimal
Temas 2 y 3: Representación de la Información
Contenidos
1.
2.
3.
4.
5.
25
Números de precisión finita
Sistemas de numeración
Representación de números enteros
Representación de números reales
Representación de caracteres
Temas 2 y 3: Representación de la Información
Representación números enteros
Binario natural

–
Con p bits, Rango = [0, 2p-1]
2p -1
0
-
+
Rango
–
Ejemplo:

–
26
Con p= 3 bits, rango = [0, 23-1] = [0,7]
Problema: No permite representar números
negativos.
Temas 2 y 3: Representación de la Información
Representación números enteros

Códigos para representar números enteros:
–
–
–
–
27
Signo-magnitud
Complemento a 1
Complemento a 2
En exceso a N
Temas 2 y 3: Representación de la Información
Representación números enteros

Signo magnitud
1.
Bit más a la izquierda: bit de signo

2.

0 para + y 1 para -
Resto de bits: valor absoluto
Ejemplos:
1101s-m = -510
-1010 (precisión 5 bits) = 11010s-m
-1010 (precisión 8 bits) = 10001010s-m
28
Temas 2 y 3: Representación de la Información
Representación números enteros
Signo magnitud

–
Rango con p bits = [- (2p-1-1), 2p-1-1]

Ejemplo
Con p=5, rango = [-(25-1-1), 25-1-1] = [-15, 15]
- (2p-1 -1)
0
-
+
Rango
29
2p-1 -1
Temas 2 y 3: Representación de la Información
Representación números enteros
Complemento a 1

–
–
–
30
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
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]
- (2p-1 -1)
0
-
+
Rango
31
2p-1 -1
Temas 2 y 3: Representación de la Información
Representación números enteros
Complemento a 2

–
–
–
32
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
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]
- 2p-1
0
-
+
Rango
33
2p-1 -1
Temas 2 y 3: Representación de la Información
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
34
Temas 2 y 3: Representación de la Información
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)
35
Temas 2 y 3: Representación de la Información
Representación números enteros

Tabla de códigos, con p = 3
Nº decimal SignoMagnitud
36
Complemento
a1
Complemento Exceso a N
a2
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
Contenidos
1.
2.
3.
4.
5.
37
Números de precisión finita
Sistemas de numeración
Representación de números enteros
Representación de números reales
Representación de caracteres
Temas 2 y 3: Representación de la Información
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

–
–
–
–
38
± → Signo del número
M → mantisa en valor absoluto
b → base
e → exponente
Se dice que el número está
normalizado
cuando el número más
significativo
está en la cifra de las unidades
Temas 2 y 3: Representación de la Información
Representación IEEE 754



39
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
Representación IEEE 754

Se representa:
–
–
–

40
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
s
c
m'
1
nc
nm
El orden de almacenamiento es: campo de signo (s),
campo de exponente (e) y campo de mantisa (m).
Temas 2 y 3: Representación de la Información
Representación IEEE 754

Signo:
–

Exponente:
–
41
0 para + y 1 para 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
Representación IEEE 754

Mantisa:
1.
2.
42

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)
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
Representación IEEE 754

Dos formatos:
–

Precisión simple: palabra de 32 dígitos
–
–
–
43
Precisión simple (SP) y doble (DP)
ns = 1 bits
nc= 8 bits
nm’= 23 bits
s
c
m'
1
8
23
Temas 2 y 3: Representación de la Información
Representación IEEE 754

Precisión doble: palabra de 64 dígitos
–
–
–
44
ns = 1bits
nc= 11 bits
nm= 52 bits
s
c
m'
1
11
52
Temas 2 y 3: Representación de la Información
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:


45
Mantisa es 0.M’
Exponente: exceso N = 2p-1 - 2
Temas 2 y 3: Representación de la Información
Representación IEEE 754

Precisión simple (Resumen):
–
–
–
–
–
–
46
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
Representación IEEE 754

47
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
Representación IEEE 754

Dificultades al obtener:
–
–
48
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
Representación IEEE 754

Dificultades al comparar dos números :
–
–
49
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
Contenidos
1.
2.
3.
4.
5.
50
Números de precisión finita
Sistemas de numeración
Representación de números enteros
Representación de números reales
Representación de caracteres
Temas 2 y 3: Representación de la Información
Códigos alfanuméricos

Los caracteres alfanuméricos se codifican
mediante un número entero.
–
–
–
–

51
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
Códigos alfanuméricos

ASCII: (American Standard Code for Information
Interchange)



52
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
Códigos alfanuméricos

53
Código ASCII
Temas 2 y 3: Representación de la Información
Códigos alfanuméricos

54
Código de algunos caracteres:
Carácter
‘a’
‘A’
‘0’
Código
97
65
48
NUL
0
Carácter
‘z’
‘Z’
‘9’
Código
122
90
57
Temas 2 y 3: Representación de la Información
Códigos alfanuméricos

Inconvenientes del código ASCII (sobre todo con
Internet):
–
–
–
–
55
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
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:



56
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
Bibliografía

57
Prieto et al. “Introducción a la informática”,
McGraw Hill