REPRESENTACIN DE LA
INFORMACIN
Fundamentos de Informtica
Departamento de Ingeniera de Sistemas y Automtica.
Escuela de Ingenieras Industriales.
Universidad de Valladolid
ndice
1.
2.
3.
4.
Fundamentos de Informtica
Introduccin
La informacin es un conjunto de datos, cuyo
significado depende del contexto. Su propsito
puede ser el de reducir la incertidumbre o
incrementar el conocimiento acerca de algo
La representacin de la informacin estudia las
distintas formas en que se puede comunicar y
acceder a la informacin
Fundamentos de Informtica
Nombre
Edad
Sexo
DNI
NIA
Altura, peso
Fundamentos de Informtica
No. de serie
Potencia
Eficiencia
Par motor
Modelo: ley de
Newton...
Dimensiones
Composicin qumica de
reactivos
Caudales
Caudal del refrigerante.
Potencia del agitador
Temperatura
Introduccin
Para la ejecucin de un programa, al ordenador
debemos suministrarle dos tipos de informacin:
las instrucciones que forman el programa
los datos con los que debe operar ese programa.
Fundamentos de Informtica
Representacin de la
informacin
Caracteres, dgitos:
texto
nmeros: cantidades
enteras, reales ...
modelos del mundo
fsico.
matemtica, algoritmos
....
Cmo
representar la
informacin en
un ordenador?
Fundamentos de Informtica
Representacin de la
informacin
La memoria del
ordenador es una tabla
de n octetos o bytes.
Cada byte est
compuesto de bits.
El bit es la unidad de
informacin.
Fundamentos de Informtica
Esta es la solucin ms
robusta y eficiente.
Representacin de la informacin
En la memoria
conviven:
Instrucciones.
Datos:
Texto
numricos:
enteros, reales...
Fundamentos de Informtica
Representacin de la informacin
Pero externamente se
trabaja con caracteres,
dgitos, signos de
puntuacin ...
Codificacin
(ASCII)
Codificacin
sistemas binarios
de numeracin
(enteros, reales)
Fundamentos de Informtica
Introduccin
Cmo suministramos la informacin?
Utilizando un conjunto de smbolos, los caracteres:
Alfabticos (AZ,az)
Numricos (09)
Especiales (,:=)
De control (fin de linea,tabulador)
Grficos, tales como iconos
Fundamentos de Informtica
10
int (entero).
float (en punto flotante)
double (doble precisin)
char (carcter)
Fundamentos de Informtica
11
Introduccin
Cmo
almacena
informacin?
el
ordenador
la
12
Introduccin
La codificacin de la informacin
13
Sistemas de numeracin
Un sistema de numeracin es un conjunto de
smbolos utilizado para representar cantidades,
junto al conjunto de reglas que permiten
construir nmeros vlidos.
Fundamentos de Informtica
14
Sistemas de numeracin
Sistemas de numeracin posicional
El nmero de smbolos (cifras) permitidos en un sistema de
numeracin posicional se conoce como base del sistema
de numeracin.
Por ejemplo en el sistema decimal la base es b=10. El
conjunto de 10 smbolos es: {0,1,2,3,4,5,6,7,8,9}
Un nmero se expresar mediante un conjunto de cifras,
contribuyendo cada una de ellas con un valor dependiente
de:
El valor que representa esa cifra
La posicin que ocupe dentro del nmero
Fundamentos de Informtica
15
Sistemas de numeracin
Para construir un nmero N, con un nmero n de
cifras enteras y un nmero k de cifras representando
la parte fraccionaria, puede usarse con carcter
general la siguiente frmula:
16
Sistemas de numeracin
Sistemas ms usuales
Binario:
Base 2 (2=21).
Conjunto {0,1}
Octal:
Base 8 (8=23).
Conjunto {0,1,2,3,4,5,6,7}
17
Sistemas de numeracin
Conversin entre sistemas numricos
La conversin desde un sistema posicional
cualquiera a sistema decimal (base 10) se
realiza calculando el valor del polinomio
equivalente.
Fundamentos de Informtica
18
Sistemas de numeracin
Conversin entre sistemas numricos
Conversin desde base 10 a un sistema
posicional cualquiera (base b).
Se transforma por separado la parte entera y la
parte fraccionaria del nmero:
Parte entera: divisiones sucesivas entre b.
Parte fraccionaria: productos sucesivos por b.
Fundamentos de Informtica
19
Sistemas de numeracin
Conversin entre sistemas numricos:
parte entera
(r1 es menor que b)
Si repetimos el proceso
sucesivas entre b tenemos:
Fundamentos de Informtica
mediante
divisiones
20
Sistemas numricos.
Conversin entre sistemas numricos:
parte entera
Seguiremos haciendo divisiones
sucesivas hasta alcanzar un
cociente Cn que sea menor que
la base b
21
Sistemas de numeracin
Conversin entre sistemas numricos:
parte entera
Por tanto, la representacin en base b es:
Ejemplo:
Fundamentos de Informtica
22
Sistemas de numeracin
Conversin entre sistemas numricos:
parte fraccionaria
La parte fraccionaria de un nmero es aquella que representa una
cantidad inferior a la de la unidad.
La parte fraccionaria de un nmero en base 10 es:
Fundamentos de Informtica
23
Sistemas de numeracin
Conversin entre sistemas numricos:
parte fraccionaria
Dado que las cifras ai son siempre menores que b, y en particular 0<a-1<b, el resultado
de b x N es entonces a-1 ms una cantidad que no alcanza el valor b.
A diferencia del caso anterior de conversin de la parte entera, se tiene que definir
un criterio de parada (por ejemplo, nmero mximo de cifras fraccionarias).
En general, se comete un error de truncamiento, es decir, el valor representado no
es el mismo que el original.
Fundamentos de Informtica
24
Sistemas de numeracin
Conversin entre sistemas numricos:
parte fraccionaria
Ejemplo: convertir a binario (base 2) el nmero N=0,78
25
Sistemas numricos.
Conversin entre sistemas numricos.
Conversiones entre binario, octal y hexadecimal.
Un nmero N en base 8 (octal) viene dado por:
El polinomio equivalente es:
Observad que:
Los pi son tales que 0 pi7. Es decir, cualquiera de ellos se representa en
binario con tres bits: cibiai = cix22 + bix21 + aix20
8 = 23. Cualquier potencia 8j = 23j
26
Sistemas numricos.
Conversin entre sistemas numricos.
Conversiones entre binario, octal y hexadecimal.
El polinomio equivalente en potencias de 8 pasa a ser un polinomio equivalente en
potencias de 2 (valor en binario del nmero N)
Fundamentos de Informtica
27
Sistemas numricos.
Conversin entre sistemas numricos.
Conversiones entre binario, octal y hexadecimal.
Ejemplo: Convertir a octal y hexadecimal el nmero
00 0101110100,010101
En base 8 (octal)
000101110100,010101 00
En base 16 (hexadecimal)
Fundamentos de Informtica
4
28
Sistemas numricos.
Conversin entre sistemas numricos.
Conversiones entre binario, octal y hexadecimal.
Ejemplo: Convertir a binario el nmero en octal 375.21
3
En base 2 (binario)
Fundamentos de Informtica
5 , 2
29
Sistemas numricos.
Otros sistemas numricos. Cdigos BCD
BCD (Decimal codificado en binario)
Es una codificacin que permite representar
cifras decimales (base 10) mediante un
sistema binario.
Para ello, cada una de las diez cifras de base
10 son codificadas en binario con 4 bits.
Existen muchas posibilidades de codificacin
(con 4 bits existen 16 combinaciones).
Fundamentos de Informtica
30
Sistemas numricos.
Otros sistemas numricos. Cdigos BCD
BCD (Decimal codificado en binario).
Fundamentos de Informtica
31
Sistemas numricos.
Otros sistemas numricos. Cdigos BCD
BCD (Decimal codificado en binario)
Ejemplo: El nmero decimal 148 en BCD
natural sera:
1 0001
4 0100
8 1000
148 000101001000
Fundamentos de Informtica
32
Sistemas numricos.
Suma y resta en binario.
La suma binaria se realiza bit a bit.
El resultado en base 10 es conocido 0 + 1 = 1|10 = 1|2
1 + 1 = 2|10 = 10|2
La suma de dos bits da como resultado dos bits: suma y acarreo
0 + 0 = 0|2 = 00|2
0 + 1 = 1|2 = 01|2
1 + 0 = 1|2 = 01|2
1 + 1 = 10|2 = 10|2
Ejemplo:
6
+3
9
Fundamentos de Informtica
0
0
01
1
1
0
10
0
1
1
10
0
0
1
01
1
33
Sistemas numricos.
Suma y resta en binario.
En realidad un sumador elemental slo realiza la suma de dos bits
Se necesitan dos etapas (dos sumas elementales: bit+bit,
resultado+acarreo anterior).
Ejemplo:
6
+3
Fundamentos de Informtica
0
0
00
1
01
1
1
0
01
1
10
0
1
1
10
0
00
0
0
1
01
34
Sistemas numricos.
Suma y resta en binario.
Del mismo modo la resta binaria se realiza tambin bit a bit.
El resultado en base 10 es conocido
1 0 = 1|10
0 - 1 = - 1|10
1 - 1 = 0|10
Evitando por el momento el problema de representar nmeros
negativos, se define la resta de un modo similar a la suma.
Tenemos como resultado dos bits: diferencia y acarreo
Ejemplo:
0 - 0 = 00|2
6
0
1
1
0
0 - 1 = 11|2
- 3
0
0
1
1
1 - 0 = 01|2
00
11
11
00
1 - 1 = 00|2
3
Fundamentos de Informtica
35
Sistemas numricos.
Suma y resta en binario.
Que, como sucede con la suma, tambin comprende dos etapas.
Ejemplo:
6
- 3
0
0
00
0
00
0
Fundamentos de Informtica
1
0
01
1
00
0
1
1
00
1
11
1
0
1
11
1
36
2. Representacin de nmeros
enteros.
Sobre un papel es obvia la representacin del signo de
un nmero. Sin embargo, en un sistema informtico,
debemos abordar cmo representar el signo.
Adems, como se ver, la representacin del 0 puede
causar ambigedades.
Se estudiarn tres mtodos para representar nmeros
con signo en binario:
Signo y magnitud
Complementos
Representacin en exceso
Fundamentos de Informtica
37
Fundamentos de Informtica
38
Fundamentos de Informtica
39
Fundamentos de Informtica
40
41
N b 1 N
n
Complemento a la base b:
N bn - N
Puesto que en binario la base es 2, se conocen como
complemento a 1 y complemento a 2 respectivamente.
Fundamentos de Informtica
42
Complemento a dos
Se cambian de izquierda a derecha ceros por unos y
unos por ceros hasta el ltimo 1. ste, y todos los bits a
su derecha, se mantienen.
O bien, se calcula el complemento a uno y se suma 1 al
bit ms a la derecha
Fundamentos de Informtica
43
O bien
Sumndole 1
110011
44
45
Fundamentos de Informtica
46
47
48
Fundamentos de Informtica
49
Ejemplo:
enteros).
+ 7 = +(2n-1-1)
+6
+5
+4
+3
+2
+1
0
Tema 1 - Representacin de la Informacin
50
111 = -7 = -(2n-1-1)
110 = -6
101 = -5
100 = -4
001 = -3
010 = -2
001 = -1
000 = -0
Fundamentos de Informtica
51
- 001 = -1
- 010 = -2
- 011 = -3
- 100 = -4
- 101 = -5
- 110 = -6
- 111 = -7
??
52
11111111.11111000
00000000.00001000 = 8
Fundamentos de Informtica
1 111
1 110
1 101
1 100
1 011
1 010
1 001
1 000
- 001 = -1
- 010 = -2
- 011 = -3
- 100 = -4
- 101 = -5
- 110 = -6
- 111 = -7
-1 000 = -8 = -(2n-1)
53
11101100
-20|10
-00010100|2
54
55
Fundamentos de Informtica
56
Nmeros enteros.
Representacin en exceso (1)
Consiste en tomar el valor del nmero a representar y
sumarle un exceso k. A cada nmero se le suma el
mismo valor y est en exceso por dicho valor.
Tambin se denomina representacin sesgada (biased).
Normalmente, y para conseguir que el nmero de valores
negativos y positivos sea similar, se escoge como exceso
k= bn-1 (Exceso a bn-1) o k= bn-1-1
Fundamentos de Informtica
57
Nmeros enteros.
Representacin en exceso (2)
Si se trabaja por ejemplo con 8 bits, un posible
exceso es: 27-1=127|10
De este modo la correspondencia ser
-127|10
-126|10
-127 + 127 = 0
-126 + 127 = 1
00000000|e127
00000001|e127
-1|10
0|10
+1|10
-1 + 127 = 126
0 + 127 = 127
+1 + 127 = 128
01111110|e127
01111111|e127
10000000|e127
11111110|e127
11111111|e127
+127|10
+128|10
Fundamentos de Informtica
58
Nmeros enteros.
Representacin en exceso (3)
El menor nmero que se podr representar se
corresponde precisamente con el exceso que se elija.
En el ejemplo, con n=8 se ha escogido 2(8-1)-1 = 127.
El rango entonces va desde -127 hasta +128.
Fundamentos de Informtica
59
Nmeros enteros.
Representacin en exceso (4)
Al sumar dos nmeros representados en
exceso se necesita corregir el resultado
A|e = A|10 + exc; B|e = B|10 + exc;
A|e+B|e=A|10+exc+ B|10+exc = Suma|10 + 2exc;
Fundamentos de Informtica
60
Nmeros enteros.
Representacin en exceso (5)
Si A y B son la representacin en exceso de
los nmeros a y b, se cumple que
a b A B
Las representaciones de los nmeros conservan el orden
de los mismos.
El resto de representaciones vistas no cumplen esta
propiedad.
Esto es til cuando se realizan comparaciones de
nmeros.
Fundamentos de Informtica
61
Nmeros enteros.
Representacin en exceso (6)
Desventajas
Ventajas
62
63
64
Fundamentos de Informtica
65
| -2
| 34523
.34523 x 10+3 = +
| +3
| .34523
345.23 x 100 = +
|0
| 345.23
Fundamentos de Informtica
66
67
Fundamentos de Informtica
68
1 bit de
signo
nc bits
exponente
(caracterstica)
Fundamentos de Informtica
nm bits
mantisa
69
1 bit de
signo
nc bits
exponente
(caracterstica)
nm bits
mantisa
70
71
72
Positivos : Cero
Negativos: Uno
Exponente
Se representa en exceso 2(nc-1)-1. Se pueden representar as
exponentes desde -(2(nc-1)-1) hasta +2(nc-1).
Simple precisin: exceso 127, [-127,128]
Doble precisin: exceso 1023, [-1023,1024]
Mantisa
Se normaliza del modo 1,m. Es decir, el primer uno (bit ms
significativo) del nmero positivo se sita a la izquierda de la coma.
Se usa representacin en signo-magnitud.
Fundamentos de Informtica
73
74
En simple precisin:
Exponente (caracterstica) = +3 +127 = +130|10
bit signo
0
8 bits (exponente)
10000010
Fundamentos de Informtica
23 bits (mantisa)
10100100000000000000000
75
8 bits (exponente)
10000101
23 bits (mantisa)
11011010000000000000000
76
77
En el ejemplo:
96,77846021
ln( 2)
ln( 2)
Fundamentos de Informtica
78
79
En el ejemplo:
20.77846021 =1.715299155|10=
=1 .10110111000111011101100|2
1359x1026 = 296. 20.77846021 =
=1 .10110111000111011101100|2 x 296
Fundamentos de Informtica
80
8 bits (exponente)
11011111
Fundamentos de Informtica
23 bits (mantisa)
10110111000111011101100
81
82
ln(N)=ln(2x)=xln(2)
Luego e=-94
ln (N)
x
94.90295534
ln ( 2 )
f=-0.90295534
MANTISA
83
00100000
REPRESENTAR MANTISA
1.069580197|10=1.00010001110100000000001
(Se toman 23 bits sin el 1 implcito)
bit signo
1
8 bits (exponente)
00100000
Fundamentos de Informtica
23 bits (mantisa)
00010001110010101100001
84
85
86
8 bits (exponente)
23 bits (mantisa)
11111110
111111111111111111111111
87
8 bits (exponente)
00000001
23 bits (mantisa)
00000000000000000000000
88
8 bits (exponente)
00000000
23 bits (mantisa)
0001000000..0000
89
8 bits (exponente)
00000000
23 bits (mantisa)
00000000000000000000001
Fundamentos de Informtica
90
Doble precisin:
- Desde: 2-1023 1.11x10-308 hasta (1-2-53) x 2+1024 1.7x10308
- Desnormalizados: hasta 2-1075 2.4x10-324
Fundamentos de Informtica
91
92
Reales (double)
Los datos de tipo double emplean el doble de espacio que el tipo float, 64 bits, por lo
que se aumenta de forma muy significativa el rango de nmeros a representar y su
precisin.
Ej: double cociente;
Fundamentos de Informtica
93
Fundamentos de Informtica
94
Fundamentos de Informtica
95
Fundamentos de Informtica
en
diferentes
96
Fundamentos de Informtica
97
Fundamentos de Informtica
-128 y
98
DESCRIPCION
TAMAO
EN BITS
INTERVALO DE VALORES
char
caracteres ASCII y
enteros pequeos
int
nmeros enteros
16
32
-32.768 a 32.767
-2.147.483.647 a 2.147.483.647
float
decimales y nmeros
grandes
double
Fundamentos de Informtica
32
3.4E-38 a 3.4E+38
64
1.7E-308 a 1.7E+308
99
Ejemplo.
Si la cadena es: Vaya chapa, hay 10 caracteres (se incluye el
espacio en blanco) y los caracteres se almacenaran en las
posiciones X, X+1, X+2.X+9, ocupando el carcter NUL la
posicin X+10
Fundamentos de Informtica
100
Algunas referencias.
Fundamentos de Informtica y Programacin en C.
Diego R. Llanos Ferraris (Paraninfo 2010)
Fundamentos de Informtica
101