Anda di halaman 1dari 101

T1

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.

Sistemas de numeracin binario, octal y hexadecimal.


Representacin de nmeros enteros.
Representacin de nmeros reales.
Representacin de caracteres.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

La informacin: datos que


reducen la incertidumbre

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

Tema 1 - Representacin de la Informacin

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.

Desde el punto de vista de la representacin de


la informacin, debe considerarse:
Cmo suministramos la informacin?
Cmo almacena el ordenador la informacin?

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Un bit slo distingue entre dos


posibilidades:
carga/no carga
convencin:
1 / 0

Esta es la solucin ms
robusta y eficiente.

Tema 1 - Representacin de la Informacin

Representacin de la informacin

En la memoria
conviven:
Instrucciones.
Datos:
Texto
numricos:
enteros, reales...

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

La comunicacin con el ordenador se realiza usando los


caracteres que admiten sus dispositivos de E / S.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

10

Lenguaje de programacin C.Tipos de datos simples


Por ejemplo, en C, los datos simples a representar:
Pueden ser nmeros o caracteres.
El ordenador necesita un sistema para identificar y utilizar todas estas
diferentes clases de datos
El lenguaje de programacin C dispone de cuatro tipos de datos
simples o bsicos:

int (entero).
float (en punto flotante)
double (doble precisin)
char (carcter)

El estndar ANSI no especifica un tamao predeterminado para los


datos: depende del compilador.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

11

Introduccin
Cmo
almacena
informacin?

el

ordenador

la

El ordenador tambin utiliza un conjunto de


caracteres.
La forma ms fiable y simple de almacenar la
informacin es usar nicamente dos valores como
caracteres (0 y 1).
Estos caracteres se conocen como BIT (Binary digit).
Un bit es la unidad de informacin mnima.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

12

Introduccin
La codificacin de la informacin

La Codificacin es una transformacin que representa los elementos de


un conjunto mediante los de otro, de forma tal que a cada elemento del
primer conjunto le corresponda un elemento distinto del segundo.
Ejemplo:
cdigo de provincia en las matrculas de los coches;
NIA
DNI

La existencia de dos conjuntos diferentes de caracteres, uno externo para


el usuario y otro interno para el ordenador, hace necesario codificar los
caracteres de un conjunto con los del otro. Son los llamados cdigos de
E/S (por ejemplo el cdigo ACSII).
Por otro lado, a nivel interno y para mejorar la eficiencia, la existencia de
datos numricos de muy diferentes caractersticas (binarios, enteros, coma
flotante), motiva la utilizacin de otras codificaciones, que constituyen los
diferentes sistemas de numeracin.
Fundamentos de Informtica

Tema 1 - Representacin 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.

Aunque el ms conocido y usado es el sistema


de numeracin decimal, en los dispositivos
informticos son ms utilizados el sistema octal,
el hexadecimal y, sobre todo, el binario.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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:

Por ejemplo, el nmero N=789.3 en base 10 (se


representar 789.3|10) tiene como valor:
7x102 + 8x101 + 9x100 + 3x10-1
El polinomio que permite calcular el valor del nmero
se denomina polinomio equivalente.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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}

Hexadecimal: Base 16 (16=24).


Conjunto {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

El valor de N est dado por un polinomio de potencias de b


(desde bn hasta b0) con coeficientes menores que b (los ri y Cn).
Es el polinomio equivalente!
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

21

Sistemas de numeracin
Conversin entre sistemas numricos:
parte entera
Por tanto, la representacin en base b es:
Ejemplo:

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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:

Su representacin en base b ser:


El objetivo es obtener los valores ai, cifras del nmero N en base b.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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.

As, tras el primer producto se conoce el valor de a-1


Mediante productos sucesivos, se realiza luego el producto b x ((b x N) a-1))
y se obtiene a-2, etc.

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

Tema 1 - Representacin de la Informacin

24

Sistemas de numeracin
Conversin entre sistemas numricos:
parte fraccionaria
Ejemplo: convertir a binario (base 2) el nmero N=0,78

Si se detiene ah el proceso se obtiene que N|2=0.1100


El valor obtenido es 2-1 + 2-2 = 0.5 + 0.25 = 0.75. Se ha cometido un error de
truncamiento de 0.03
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

011 111 101 . 010 001

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

30

Sistemas numricos.
Otros sistemas numricos. Cdigos BCD
BCD (Decimal codificado en binario).

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

37

Nmeros enteros. Signo-Magnitud (1)


Suponiendo que se dispone de n bits se
asigna:
El bit ms significativo (bit de signo) para
representar el signo:
0 para signo +
1 para signo

Los (n-1) bits restantes (significando) para


representar la magnitud en binario

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

38

Nmeros enteros. Signo-Magnitud (2)


Ejemplo con 8 bits:
Representacin del nmero -9710 (decimal)
El signo del nmero -9710 es negativo, luego el bit de signo
es 1;
El valor absoluto de -9710 es |-9710| = 9710. En binario es:
11000012
El nmero -9710 en binario con formato de Signo y Magnitud
es: 111000012.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

39

Nmeros enteros. Signo-Magnitud (3)


Rango de representacin
Desde (2(n-1)-1) hasta +(2(n-1)-1).
El rango es simtrico
Para n=8, el rango es [-127,127]

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

40

Nmeros enteros. Signo-Magnitud (4)


Problemas
Existencia de dos ceros
0 000.0 (+0)
1 000.0 (- 0)

No se puede operar aritmticamente

Para solucionar esos problemas:


Representacin en complementos
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

41

Nmeros enteros. Complementos (1)


Definicin de complemento de un nmero N
entero positivo:
Complemento a la base b menos uno:

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

Tema 1 - Representacin de la Informacin

42

Nmeros enteros. Complementos (2)


Obtencin del complemento:
Complemento a uno
Se cambian ceros por unos y unos por ceros

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

Tema 1 - Representacin de la Informacin

43

Nmeros enteros. Complementos (3)


Ejemplo:
Nmero A = 13|10 = 001101|2 usando n = 6bits
Complemento a 1 de A es (por definicin) 26 - 1 13 = 50|10
El valor binario de 50 es 110010.
001101
110010
Complemento a 2 de A es (por definicin) 26 - 13 = 51|10
El valor binario de 51 es 110011
001101
110011

O bien

001101 Complemento a 1 110010


Fundamentos de Informtica

Sumndole 1
110011

Tema 1 - Representacin de la Informacin

44

Nmeros enteros. Complementos (4)


En la representacin mediante complemento de
un nmero signado de n-bits asignamos:
un bit para representar el signo, al igual que
en la representacin Signo - Magnitud
los (n-1)-bits restantes para representar el
significando que es:
la magnitud del nmero en valor absoluto para el
caso de nmeros positivos
el complemento del valor absoluto del nmero, en
caso de ser negativo.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

45

Nmeros enteros. Complementos (5)


Nmeros enteros positivos
Bit de signo 0 seguido del valor binario con n-1 bits.

Nmeros enteros negativos


Bit de signo 1 seguido del:
complemento a uno con n-1 bits.
O bien , complemento a dos con n-1 bits.
Ejemplo: usando n = 8bits
A = 13|10 =
0 0001101
-13|10 =
1 1110010 (comp. a uno)
-13|10 =
1 1110011 (comp. a dos)

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

46

Nmeros enteros. Complementos (6)


Se puede ver como el bit de signo forma parte
del nmero:
1. Si el nmero es positivo, el bit de signo 0 no es ms que

uno de los ceros que se pueden poner por delante del


mismo dependiendo del tamao en bits con que se
quiera representar.
Ejemplo: A = 13|10
Con n = 7 bits
0001101
Con n = 10 bits 0000001101

Se observa que el menor nmero de bits para


representar 13|10 con signo es de 5 bits: 0 1101
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

47

Nmeros enteros. Complementos (7)


2. Del mismo modo, si el nmero es negativo, el bit de
signo 1 no es ms que uno de los unos que se pueden
poner por delante del mismo.
Ejemplo: Partiendo de A = 13|10 el valor de -13 es
Con n = 7 bits
+13 = 0001101
En comp a uno -13 = 1110010
En comp a dos -13 = 1110011
Con n = 10 bits
+13 = 0000001101
En comp a uno -13 = 1111110010
En comp a dos -13 = 1111110011
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

48

Nmeros enteros. Complementos (8)


Rango de representacin empleando complementos
Formato que emplea 1 bit de signo y (n-1) bits enteros
(total n bits).
Complemento a uno.
Desde (2n-1-1) hasta +(2n-1-1).
Hay dos representaciones para el cero.
Complemento a dos.
Desde (2n-1) hasta +(2n-1-1).

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

49

Nmeros enteros. Complementos (9)

Ejemplo:

Si n = 4 bits (1 bit de signo, 3 bits

enteros).

Nmeros positivos (tanto en comp. a uno como a dos)


0 111
0 110
0 101
0 100
0 011
0 010
0 001
0 000
Fundamentos de Informtica

+ 7 = +(2n-1-1)
+6
+5
+4
+3
+2
+1
0
Tema 1 - Representacin de la Informacin

50

Nmeros enteros. Complementos (10)


Nmeros negativos en complemento a uno
1 000
1 001
1 010
1 011
1 100
1 101
1 110
1 111

111 = -7 = -(2n-1-1)
110 = -6
101 = -5
100 = -4
001 = -3
010 = -2
001 = -1
000 = -0

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

51

Nmeros enteros. Complementos (11)


Nmeros negativos en complemento a dos
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
??

El valor de 1 000 se puede obtener de la definicin. En valor


absoluto y tomando n = 4bits,

N 1000 |2 8 2n - N 24 N Es decir N = 8, o bien, 1 000 = -8


Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

52

Nmeros enteros. Complementos (12)


Otra forma de saber cul es el valor de 1 000 es usar
algo ya visto.
El nmero con signo 1 000 no es ms que tomar los 4 ltimos bits
del nmero 11111111.11111000. Haciendo su transformacin:

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)

Tema 1 - Representacin de la Informacin

53

Nmeros enteros. Complementos (13)


Al operar aritmticamente en complemento 2 se obtiene
el resultado correcto sin mas que sumar.
Ejemplo:
80 |10 -100|10= -20|10
La resta anterior se representa como la suma del valor
en complemento 2 de 80 y de -100. En 8 bits:
01010000
80 |10 -> 01010000|2
+
10011100
100 |10 -> 01100100|2

11101100

-100 |10 -> 10011100|2-comp2


Fundamentos de Informtica

-20|10

-00010100|2

Tema 1 - Representacin de la Informacin

54

Nmeros enteros. Complementos (y 14)


Resumiendo:
Representacin en complemento a uno
Tiene como rango de representacin desde (2n-1-1) hasta +(2n-1-1).
Presenta el problema de tener dos ceros.
Plantea asimismo problemas al realizar sumas con signo.
Representacin en complemento a dos
Tiene como rango de representacin desde (2n-1) hasta +(2n-1-1).
No presenta el problema de tener dos ceros.
Al operar con signo se obtiene el resultado correcto tanto si el valor
es positivo (bit de signo 0, valor binario) como si ste es negativo
(bit de signo 1, complemento a dos).
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

55

Lenguaje de programacin C. Nmeros enteros.


Enteros (int)
Un dato de tipo int podr representar cualquier entero (negativo, positivo o
cero) pero en ningn caso puede tener decimales. Ej: int saldo_euros;
Existe otra limitacin: no se pueden representar como enteros nmeros
enormemente altos en valor absoluto.
En un nuestro caso el tamao es de 4 octetos: 2^31=2.147.483.640 combinaciones
para el valor absoluto.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

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

+127 + 127 = 254


+128 + 127 = 255

11111110|e127
11111111|e127

+127|10
+128|10

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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.

Generalizando, y si se usa ese exceso, el rango va


desde -(2(n-1)-1) hasta +2(n-1).

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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;

Hay que restar un exceso al resultado obtenido

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

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

Tema 1 - Representacin de la Informacin

61

Nmeros enteros.
Representacin en exceso (6)
Desventajas

Requiere de operaciones aritmticas intermedias para su


obtencin, y de cambiar el nmero de bits, se deben actualizar
dichas operaciones intermedias para reflejar el nuevo exceso.
Posee rango asimtrico

Ventajas

Permite operar aritmticamente (aunque hay que restar un


exceso al resultado final).
No hay empaquetacin del nmero: no hay que distinguir
entre signo y significando, los n-bits son el nmero.

Permite la comparacin directa entre nmeros


Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

62

Nmeros reales. Coma Flotante (1)


Un nmero real consta de una parte entera y
otra fraccionaria, ms el signo.
Existen dos opciones de representacin: coma
fija o coma flotante.
Coma fija: Se asigna una cantidad fija de dgitos para
la parte entera y una cantidad fija para la parte
fraccionaria.
Ejemplo: Obviando el asunto del signo, si disponemos
de 8 bits y reservamos 5 bits para la parte fija y 3 para
la fraccionaria, el nmero 21.7510 sera 10101.110
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

63

Nmeros reales. Coma Flotante (2)


Coma fija
Al usar la notacin en coma fija, queda muy limitado el
nmero de cantidades a representar y todas ellas
deben tener la misma resolucin.

Ejemplo de 8 bits sin tener en cuenta el signo: 5 bits


para parte entera y 3 para la parte fraccionaria:
1. No podremos representar nmeros enteros
mayores o iguales que 32 (25)
2. Ni nmeros ms pequeos que 0,125 (2-3).
3. La mxima resolucin es 0,125 (2-3).
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

64

Nmeros reales. Coma Flotante (3)


La representacin en coma flotante adopta una
notacin exponencial:
Ejemplo: +345.23, en base 10:
Emplea tres cifras enteras y dos fraccionarias.
Un total de 5 cifras (ms un signo)
Usando una notacin exponencial se admiten
mltiples representaciones.
34523. x 10-2 = .34523 x 10+3 = 345.23 x 100

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

65

Nmeros reales. Coma Flotante (4)


Ejemplo: +345.23, en base 10:

Todas emplean 5 cifras para la mantisa, ms el


correspondiente nmero de cifras para el exponente (que es
un entero positivo o negativo). La base, al ser siempre 10,
no es necesario indicarla.
Nmero
= signo | exponente | mantisa
34523. x 10-2 = +

| -2

| 34523

.34523 x 10+3 = +

| +3

| .34523

345.23 x 100 = +

|0

| 345.23

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

66

Nmeros reales. Coma Flotante (5)


Hay como se ve una multiplicidad de
representaciones. Para deshacer esa multiplicidad,
la representacin del nmero real en coma flotante
se hace de forma similar a la notacin cientfica:
r=m x be. Consta de tres partes:
1.La mantisa m. Es un coeficiente formado por un
nmero real con una sola cifra entera seguido por una
coma (o punto) y de varias cifras fraccionarias.
2. La base b. Es 10 en el sistema decimal y 2 en binario.
3. El exponente e. Eleva la base a una potencia
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

67

Nmeros reales. Coma Flotante (6)


Se consigue, manteniendo el nmero de cifras:
representar un rango mayor de nmeros
(dependiendo del exponente)
con una mayor o menor precisin (segn el
nmero de cifras en la mantisa).
El computador utiliza el sistema binario (base
dos), con un nmero de bits a repartir entre signo,
mantisa y exponente.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

68

Nmeros reales. Coma Flotante (7)


El orden de almacenamiento es: signo seguido de
exponente seguido de mantisa:
n bits

1 bit de
signo

nc bits
exponente
(caracterstica)

Fundamentos de Informtica

nm bits
mantisa

Tema 1 - Representacin de la Informacin

69

Nmeros reales. Coma Flotante (7)


En ocasiones se emplea la palabra
caracterstica para distinguir el valor
El ordendeldeexponente
almacenamiento
es: signo seguido de
de su representacin
exponente
seguido de mantisa:
(o caracterstica)
n bits

1 bit de
signo

nc bits
exponente
(caracterstica)

nm bits
mantisa

El orden no es balad: permite que los algoritmos de


comparacin entre nmeros enteros sean tambin
vlidos para esta representacin de nmeros reales.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

70

Nmeros reales. Coma Flotante (8)


Hay que definir unas reglas acerca de:

- Dnde se sita la coma (punto) decimal


- Cmo se representan los exponentes
- Cmo se representan los nmeros negativos
Se habla entonces de diferentes normalizaciones: qu
mantisa escoger, cmo afecta al exponente,
combinaciones reservadas (cero, infinito), nmeros
positivos y negativos
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

71

Nmeros reales. Coma Flotante (9)


Hasta la dcada de los 80, cada fabricante usaba su propia
representacin, lo que dificultaba el desarrollo de algoritmos
eficientes de clculo, procesadores estndar, etc.
Por ello, la asociacin IEEE desarroll el estndar IEEE 754, que
contempla entre otros aspectos dos posibles formatos:

- Simple precisin: 32 bits.


Un bit de signo, 8 bits para el exponente (representado en exceso 127)
y 23 bits para la mantisa.
- Doble Precisin: 64 bits.
Un bit de signo, 11 bits para el exponente (representado en exceso
1023) y 52 bits para la mantisa.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

72

Nmeros reales. Coma Flotante (10)


IEEE 754
Bit de signo

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

Tema 1 - Representacin de la Informacin

73

Nmeros reales. Coma Flotante (11)


Ejemplo: 13.125|10 = 1101.001|2
La mantisa, en la forma indicada ser: 1,101001
Dependiendo del nmero de bits para la mantisa se
completa con los ceros correspondientes :
nm bits (mantisa)
101001000..0000
El primer uno no se almacena (uno implcito) pues est
siempre presente. Esto permite almacenar un bit ms
(aumento de la precisin)
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

74

Nmeros reales. Coma Flotante (12)


Ejemplo: 13.125|10 = 1101.001|2
1101.001|2 = 1101.001 x 20 = 1.101001 x 23
El exponente a representar es +3

En simple precisin:
Exponente (caracterstica) = +3 +127 = +130|10
bit signo
0

8 bits (exponente)
10000010

Fundamentos de Informtica

23 bits (mantisa)
10100100000000000000000

Tema 1 - Representacin de la Informacin

75

Nmeros reales. Coma Flotante (13)


Ejemplo: Obtencin del valor real correspondiente a un
nmero representado en simple precisin por:
bit signo
0

8 bits (exponente)
10000101

23 bits (mantisa)
11011010000000000000000

Signo 0 Nmero positivo


Exponente = +133|10 (caracterstica) -127(exceso) = +6
Mantisa (incluyendo el 1 implcito)
1.1101101000000000000000 x 26 =
1110110.1000000000000000 x 20=
1x 26+ 1x 25+ 1x 24+ 1x 22+ 1x 21+ 1x 2-1=+118.5
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

76

Nmeros reales. Coma Flotante (14)


Si el nmero real que se quiere transformar no
es tan sencillo hay que emplear un mtodo
para obtener su representacin en coma flotante.
Ejemplo: Sea N10 =1359 x 1026
1. Se coloca el bit de signo (0 positivo, 1 negativo). A partir
de aqu, al trabajar en signo-magnitud se tratan del
mismo modo positivos y negativos.
Ejemplo: Positivo, bit de signo 0
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

77

Nmeros reales. Coma Flotante (15)


2. Se despeja x de la igualdad N=2x (x es as una
aproximacin del exponente)
Es decir:

En el ejemplo:

ln(1359 1026 ) ln(1359) 26 ln(10)


x

96,77846021
ln( 2)
ln( 2)

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

78

Nmeros reales. Coma Flotante (16)


3. En general x tiene parte real y fraccionaria: x=e.f

2x = 2e.f = 2e*2f = 2e*2f = 2exponente* mantisa


En el ejemplo: e=96 f=0.77846021

Dado que la norma IEEE 754 nos impone una mantisa de la


forma 1.xxxxx, necesitamos 2f=1.xxxx, y, por tanto, f debe
cumplir 0<f<1
Obtencin de e y f:
- Si x es positivo, f cumple 0<f<1:
e=e
f=f
- Si x es negativo, -1<f<0:
e=e-1 f=1+f (e+ f = e-1+1+f = e+f )
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

79

Nmeros reales. Coma Flotante (17)


2x = 2e.f = 2e * 2f
El nmero es m*2e .La mantisa m se obtiene de 2f.

En el ejemplo:
20.77846021 =1.715299155|10=
=1 .10110111000111011101100|2
1359x1026 = 296. 20.77846021 =
=1 .10110111000111011101100|2 x 296

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

80

Nmeros reales. Coma Flotante (18)


4. Se normaliza el nmero (si es necesario) y se
representa el exponente en exceso.
En el ejemplo: Simple precisin
Exponente = 127 + 96 = 223|10 = 11011111|2
bit signo
0

8 bits (exponente)
11011111

Fundamentos de Informtica

23 bits (mantisa)
10110111000111011101100

Tema 1 - Representacin de la Informacin

81

Nmeros reales. Coma Flotante (19)


4.

Se normaliza el nmero (si es necesario) y se representa el exponente en


exceso.

Una vez obtenidos el exponente y la mantisa a representar se


pueden dar diferentes casos. Para simple precisin:

Exponente entre -126 y 127. El nmero se representa de la forma vista.


Exponente entre -149 y -127. El nmero se representar desnormalizado.
Exponente menor que -149. Se representar como cero (con su signo).
Exponente mayor que 127. Se representar como infinito (con su signo).
Lo anterior est relacionado con el rango y la representacin de
casos especiales previstos en la norma.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

82

Nmeros reales. Coma Flotante (20)


Ejemplo. Representar el nmero N=-0.027 x 10-27 en Coma Flotante
(Simple Precisin).
BIT DE SIGNO. Es negativo. Luego Bit de signo=1

Ahora se representa 0.027 x 10-27


APROXIMAR. N=2x

ln(N)=ln(2x)=xln(2)

2x= 2e.f=2e *2f

Luego e=-94

ln (N)
x
94.90295534
ln ( 2 )

f=-0.90295534

Como e es negativo e=e-1=-95 f=1+f=0.09704466

N=-0.027 x10-27 2x= 2-95 x 20.09704466 = 2-95 x 1.069580197


EXPONENTE
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

MANTISA
83

Nmeros reales. Coma Flotante (21)


REPRESENTAR EXPONENTE

En exceso. 127 95 =32. Con 8 bits

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

Tema 1 - Representacin de la Informacin

84

Nmeros reales. Coma Flotante (22)


Resumen. Pasos a seguir en la transformacin
1. Se coloca el bit de signo (0 positivo, 1 negativo). A partir de aqu, al trabajar en
signo-magnitud se tratan del mismo modo positivos y negativos.
2. Se despeja x de la igualdad N=2x (x es as una aproximacin del exponente)
Es decir
ln( N )
ln (N) ln ( 2 x ) x ln ( 2 ), de donde, x
ln( 2)
3.En general x tiene parte real y fraccionaria: x=e.f Se cumple que: 2x = 2e.f = 2e . 2f
-Si x es positivo: e=e
f=f
-Si x es negativo: e=e-1 f=1+f
(para que se cumpla la igualdad anterior, e+f=e-1+1+f = e+f )
La mantisa m se obtiene de 2f. El exponente es e.
El nmero es mx2e
4. Se normaliza el nmero (si es necesario) y se representa el exponente en exceso.
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

85

Nmeros reales. Coma Flotante (23)


Casos especiales
Los dgitos del exponente son todos 0s o todos 1s

1. Exponente con todos 1


Mantisa con todo 0 y signo 0 : +
Mantisa con todo 0 y signo 1 : -
Mantisa distinta de 0: NaN (indeterminado)
2. Exponente con todos 0
Mantisa con todo 0 y signo 0 : +0
Mantisa con todo 0 y signo 1 : - 0
Mantisa distinta de 0: Nmeros desnormalizados
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

86

Nmeros reales. Coma Flotante (24)


Rango
- Mayor valor. Mayor mantisa (todos 1) junto
con el mayor exponente posible .
Mayor valor En simple precisin
bit signo

8 bits (exponente)

23 bits (mantisa)

11111110

111111111111111111111111

Exp mayor|10 = 11111110|2 - 127 = 254 127 = +127


Mant mayor|10 = 1. 11111|2 = 2 2-23=2 x (1-2-24)
Mayor valor = 2 x (1-2-24) x (2+127)=(1-2-24) x 2+128 3.4x1038
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

87

Nmeros reales. Coma Flotante (25)


Rango
Menor valor (normalizado). En simple precisin
bit signo
0

8 bits (exponente)
00000001

23 bits (mantisa)
00000000000000000000000

Exp menor|10 = 00000001|2 - 127 = 1 127 = -126


Mant menor|10 = 1.00000000000000000000000 = 20
(pues hay un 1 implcito)
Menor valor normalizado = 20x 2-126 = 2-126 1.18x10-38
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

88

Nmeros reales. Coma Flotante (26)


Casos especiales
La desnormalizacin permite representar nmeros
con valor absoluto muy pequeo.
Mantisa en formato 0,m (desnormalizada)
Exponente a cero (-126) .
Ejemplo: En simple precisin, un nmero tal como
bit signo
0

8 bits (exponente)
00000000

23 bits (mantisa)
0001000000..0000

Valor|10 = 0.0001|2 x 2-126 = 2-4 x 2-126 = 2-130


Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

89

Nmeros reales. Coma Flotante (27)


Rango en valores desnormalizados
Menor valor (Simple precisin)
bit signo
0

8 bits (exponente)
00000000

23 bits (mantisa)
00000000000000000000001

Como ahora hay desnormalizacin


Exp = -126
Mant menor|10 = 0.00000000000000000000001 = 2-23
Menor valordesnormalizado = 2-23x 2-126 = 2-149 1.4x10-45

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

90

Nmeros reales. Coma Flotante (28)


Resumen rango
Simple precisin:
- Desde: 2-126 1.18x10-38 hasta (1-2-24) x 2+128 3.4x1038
- Desnormalizados: hasta 2-149 1.4x10-45

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

Tema 1 - Representacin de la Informacin

91

Nmeros reales. Coma Flotante (y 29)


Precisin
Nmero de bits en la mantisa
Un bit adicional en la mantisa significa que la distancia entre
dos nmeros consecutivos representables se divide entre dos.
Segn esto el trmino doble precisin no es riguroso. La precisin que
ofrece es mucho mayor.

El valor del nmero


Los nmeros no estn uniformemente distribuidos sobre la
recta real, sino que estn ms prximos cerca del origen
(exponentes ms pequeos) y ms separados a medida que
nos alejamos de l (exponentes ms grandes).
Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

92

Lenguaje de programacin C. Nmeros reales.


Reales (float)
Los datos de tipo float pueden representar cualquier nmero real (con decimales o
notacin exponencial).
En los ordenadores del laboratorio, los datos float utilizan 32 bits para su representacin (8 bits
para exponente y su signo, y 24 bits para expresar la parte no exponencial). Ej: float
longitud;

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

Tema 1 - Representacin de la Informacin

93

Representacin de caracteres (1)


Introduccin
La representacin de datos no solo numricos se hace a
travs de combinaciones de bits.
Se representan los caracteres del teclado y
combinaciones de los mismos (cadenas de caracteres).
Segn la normalizacin empleada, cada carcter
emplea un byte (8 bits), dos bytes
Cada dato se asocia entonces a un nmero, el valor
binario (entero) de dicha combinacin de bits.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

94

Representacin de caracteres (2)


Cdigo ASCII
American Standard Code for
Information Interchange

Utiliza 8 bits para


representar
cada
carcter.
Hay caracteres que
se usan para casos
especiales
(fin
de
cadena, por ejemplo)

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

95

Representacin de caracteres (3)


Cdigo UNICODE
Utiliza 16 bits por carcter
Permite representar caracteres
idiomas

Fundamentos de Informtica

en

Tema 1 - Representacin de la Informacin

diferentes

96

Representacin de caracteres (4)


La lectura de datos desde el teclado y la salida por
pantalla utilizan este tipo de cdigos.
En el caso de los nmeros hay que distinguir entre su
representacin en el cdigo y su representacin binaria
Por ejemplo.
Almacenar el carcter 5 mediante el cdigo (53) significa
almacenar el nmero binario
00111101|2.
Almacenar el nmero 5 significa almacenar el nmero entero en
binario
00000101|2.

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

97

Lenguaje de programacin C. Caracteres.


Caracteres (char)
El tipo char se utiliza para representar caracteres como letras o signos
de puntuacin. Los datos de tipo char se codifican mediante un nico
octeto (8 bits).
Para manejar caracteres, el ordenador emplea un cdigo numrico en
el que se asocian unos nmeros enteros a ciertos caracteres. El cdigo
de conversin ms utilizado es el ASCII.
Ej: char letra;

Como el ordenador reconoce nicamente ristras de ceros y unos, no


se podran utilizar stas para representar algn valor numrico?
Por ejemplo podramos representar en binario los nmeros entre
127 (256 combinaciones).
Ej: char entero_pequenio;

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

-128 y

98

Lenguaje de programacin C. Resumen datos simples.


Cuadro resumen
TIPO DE
DATO

DESCRIPCION

TAMAO
EN BITS

INTERVALO DE VALORES

char

caracteres ASCII y
enteros pequeos

los 127 caracteres ASCII y nmeros 128 a 127

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

igual que el float

Fundamentos de Informtica

32
3.4E-38 a 3.4E+38

64

1.7E-308 a 1.7E+308

Tema 1 - Representacin de la Informacin

99

Representacin de caracteres (5)


Cadenas de caracteres

Es un conjunto de caracteres (de cualquier tipo)


Se almacenan en posiciones consecutivas de memoria. Cada
carcter ocupa un byte (si se usa ASCII, p.ej.)
Para indicar el final de la cadena se pueden usar diferentes
mecanismos.
En lenguaje C, por ejemplo, se usa un carcter especial (suele
ser NUL del cdigo ASCII) que seala que se acaba la cadena

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

Tema 1 - Representacin de la Informacin

100

Algunas referencias.
Fundamentos de Informtica y Programacin en C.
Diego R. Llanos Ferraris (Paraninfo 2010)

Fundamentos de los computadores (9 edic)


Pedro de Miguel Anasagasti. (Thomson 2004)
Conceptos de Informtica.
A.Prieto Espinosa y B. Prieto Campos.
(Schaum. Mc-Graw-Hill 2005)

Fundamentos de Informtica

Tema 1 - Representacin de la Informacin

101

Anda mungkin juga menyukai