Sistemas de Representación. Teoría y Ejemplos.
Sistemas de Representación. Teoría y Ejemplos.
Sistemas de Representación. Teoría y Ejemplos.
LA INFORMACIN Y SU REPRESENTACIN
Introduccin
Sistemas de numeracin usuales en informtica
Representacin posicional de los nmeros
Sistema de numeracin binario
Operaciones aritmticas y lgicas con variables binarias
Cdigos intermedios y conversiones
Octal
Hexadecimal
Representacin de nmeros enteros
Mdulo y signo
Complemento a C-1
Complemento a C-2
Exceso a 2 n-1
Importancia de la representacin en complementos.
Representacin de numeros con punto fijo
Binario puro
Decimal codificado en binario (BCD)
Decimal desempaquetado
Decimal empaquetado
Representacin en coma flotante
Cdigos de entrada / salida
Cdigo BCD de intercambio normalizado
Cdigo EBDIC
Cdigo ASCII
LA INFORMACIN Y SU REPRESENTACIN
INTRODUCCIN
Como vimos, un computador es una mquina que procesa informacin , (un conjunto de
instrucciones que se ejecutan sobre un conjunto de datos. )
El hombre suministra informacin a la mquina mediante smbolos (caracteres) : Estos
podemos dividirlos en cinco categoras:
Caracteres alfabticos: { a,b,...,z,A,B,...,Z }.
Caracteres numricos: { 0,1,...,9 }.
Caracteres especiales: { (, ) ,*,+,-, ?, ... }.
Caracteres de control: { fin de lnea , carcter de sincronizacin, avance pgina,
pitido, ... }.
Caracteres grficos: { , ,,,,... }
A todos los caracteres de los grupos primero y segundo se les denomina caracteres
alfanumricos y a los de los grupos primero, segundo y tercero, caracteres de texto.
Un ordenador, debido a su construccin basada fundamentalmente en circuitos electrnicos
digitales, trabaja con el sistema binario (1 = 5V, 0 = 0V), usando una serie de cdigos que
permiten su funcionamiento.
Este es el motivo que nos obliga a transformar internamente todos nuestros datos, tanto
numricos como alfanumricos, a una representacin binaria para que la mquina sea capaz
de procesarlos. Adems del sistema de numeracin binario, el ordenador tambin trabaja para
la codificacin numrica con los sistemas de numeracin octal y hexadecimal.
Definimos sistema de numeracin como el conjunto de smbolos y reglas que se utilizan
para representar cantidades o datos numricos.
Tienen como caracterstica una base a la que referencian y que determina el diferente nmero
de smbolos que lo componen. Nosotros utilizamos el sistema de numeracin en base 10,
compuesto por diez smbolos diferentes (del 0 al 9).
Los sistemas de numeracin que utilizamos son sistemas posicionales, es decir, el valor
relativo que cada smbolo representa quedar determinado por su valor absoluto y la posicin
que ocupe dicho smbolo en un conjunto.
Todos los sistemas posicionales estn basados en el Teorema Fundamental de la
Numeracin (TFN), que sirve para relacionar una cantidad expresada en cualquier sistema
de numeracin con la misma cantidad expresada en el sistema decimal.
Viene dado por la frmula siguiente: donde X es el valor absoluto del dgito en cuestin, i es
la posicin que ocupa el dgito con respecto al punto decimal y B es la base.
* B
Ejemplo
Supongamos que la base b es 10. El conjunto de smbolos ser: { 0,...,9 }. Vemos que el
nmero 3278,52 puede verse como:
Nentera = 7710=10011012
b) Ahora cogemos la parte decimal , la vamos multiplicando por la base y vamos teniendo
en cuenta los dgitos enteros resultantes. Para el paso siguiente, obviamente, slo tendremos
en cuenta la parte fraccionaria resultante.
Se puede comprobar fcilmente que un nmero decimal con cifras fraccionarias puede dar
lugar a un nmero binario con mayor nmero de cifras detrs de la coma decimal. Incluso
infinitas cifras, como se observa en el siguiente ejemplo :
Es decir, 0.610 = 0.10012.(peridico) Vemos, pues, como un nmero con un slo dgito de
parte fraccionaria en base diez da lugar a un nmero con infinitos dgitos fraccionarios en
base dos. Si un nmero binario se almacena en un computador con un nmero prefijado de
bits, y por tanto finito, deberamos recortar el nmero de cifras con la que lo representemos,
a fin de guardarlo en dicho tamao finito.
El error que se comete al hacer dicho recorte (por ejemplo, almacenar slo 0.10011001 para
representar un 0.6 en base diez, porque slo reservramos 8 bits para las partes fraccionarias
de los nmeros) se denomina error de truncamiento. Con una apariencia o con otra,
dependiendo del tipo de representacin elegida, estaremos cometiendo errores de este tipo
cuando intentemos almacenar valores reales en el computador. En realidad, es un problema
anlogo al que hay en las calculadoras convencionales, que slo permiten 8 10 dgitos
significativos, por ejemplo, y nos obligan a trabajar con nmeros aproximados.
Operaciones aritmticas y lgicas con variables binarias
Estas son las tablas correspondientes a las operaciones aritmticas bsicas:
Suma aritmtica
Resta aritmtica
Multiplicacin
Divisin
0+0=0
0+1=1
1+0=1
1 + 1 = 0 (y llevo 1)
0-0=0
0 - 1 = 1 (y debo 1)
1-0=1
1-1=0
0*0=0
0*1=0
1*0=0
1*1=1
0 : 0 = indeterminado
0:1=0
1 : 0 = infinito
1:1=1
Y aqu van algunos ejemplos de la mecnica de las operaciones aritmticas con valores
expresados en binario. Observar que las operaciones estn correctamente realizadas, cuando
pasamos tanto los operandos como los resultados a decimal:
Cdigos intermedios
Facilitan la labor de programacin (trabajar en binario es muy laborioso y puede llevar a
errores por cualquier cambio en la secuencia de ceros y unos). Se basan en la facilidad de
transformar un nmero en base dos a otra base mayor que es potencia de dos. De esta
manera, cada dgito de la nueva base se traducir inmediatamente a una secuencia concreta
de ceros y unos, pero nos servir para expresarnos ms abreviadamente. Existen dos tipos de
cdigos intermedios: octal y hexadecimal. Los estudiaremos con detenimiento:
Base octal (b=8) dgitos = {0,1,2,...,7}. Un dgito octal por cada tres binarios.
Conversin de binario a octal
Dado un numero N, en binario, lo dividimos en ternas de tres valores; si el numero de cifras
no fuese un mltiplo entero de 3, las cifras que no formen parte de la terna se rellenaran
con ceros hasta formar una terna, hacia la izquierda, si es en la parte entera (izquierda de la
coma), o hacia la derecha, si es en la parte fraccionaria (derecha de la coma).
Ejemplo
Ahora, a cada terna le corresponde un dgito octal, aquel que resulta de interpretar cada terna
en binario natural:
N = 262,702(8
Conversin de octal a binario
Se hace en sentido inverso: Cada dgito octal se sustituye por tres binarios:
Ejemplo
N=94,8125(10
La parte entera es Nentera=94
Luego N=136,64 (8
De hexadecimal a binario
Seguimos el proceso inverso, sustituyendo cada dgito hexadecimal por sus cuatro binarios
correspondientes:
Ejemplo:
De hexadecimal a decimal
Se hace igual que en la base octal, y que en cualquier otra base : Siguiendo la frmula.
Ejemplo:
N=572,6250.
N=23C,A(16
MDULO Y SIGNO
COMPLEMENTO A 1 (C-1)
COMPLEMENTO A 2 (C-2)
EXCESO A 2N-1
Nmero 10
SIGNO +
Nmero -10
SIGNO -
0001010
MDULO
0001010
MDULO
COMPLEMENTO A 1 (C-1)
Este sistema de representacin utiliza el bit de ms a la izquierda para el signo,
correspondiendo el 0 para el signo + y el 1 para el signo -.
Para los nmeros positivos, los n-1 bits de la derecha representan el mdulo (igual que en el
caso anterior).
El negativo de un nmero positivo se obtiene complementando todos sus dgitos
(cambiando 0 por 1 y viceversa), incluido el bit de signo.
Nmero 10
SIGNO +
Nmero -10
SIGNO -
0001010
MDULO
1110101
MDULO
COMPLEMENTO A 2 (C-2)
Este sistema de representacin utiliza el bit ms a la izquierda para el signo,
correspondiendo el 0 para el signo + y el 1 para el -.
En el caso de los nmeros positivos, los n-1 bits de la derecha representan el mdulo (igual
en en los dos casoso anteriores).
El negativo de un nmero se obtienen en dos pasos:
Se complementa el nmero positivo en todos sus bits (cambiando los ceros por 1 y
viceversa), incluido el bit de signo, es decir se realiza el complemento a 1.
Nmero 10
SIGNO +
0001010
MDULO
Nmero -10
Primer paso
1110101
Segundo paso
1110101
1
1110110
SIGNO -
MDULO
EXCESO A 2 n-1
Este mtodo de representacin no utiliza ningn bit para el signo, con lo cual todos los bits
representan un mdulo o valor.
Este valor se corresponde con el nmero representado ms el exceso, que para n bits viene
representado por 2n-1
Por ejemplo, para 8 bits (n= 8) el exceso es de 28-1 = 27 = 128, con lo cual el nmero 10
vendr representado por 10 + 128 = 138 (en binario)
Para el caso del nmero 10 tendremos 10 + 128 = 118 (en binario)
Nmero 10:
10001010
Nmero 10
01110110
Como lo que queremos es realizar una resta, una vez hallado el C1 del sustraendo, se le
suma ste ltimo al minuendo, y el ltimo acarreo (en caso de que exista) se le suma al
resultado final.
Si no se hubiese producido el acarreo final, entonces no hay que sumar nada al resultado,
pero lo que ocurre es que ste ser negativo, y por tanto debemos complementarlo a uno
para interpretarlo.
Por ejemplo, si quisisemos haber hecho 25-30:
El resultado final es, pues 00101 (5). Si no se hubiese producido acarreo, entonces, igual que
antes, habra que interpretar el resultado como negativo, calculando su valor absoluto
complementando a 2, en este caso, el resultado.
BINARIO PURO
DECIMAL CODIFICADO EN BINARIO (BCD)
DECIMAL DESEMPAQUETADO
DECIMAL EMPAQUETADO
BINARIO PURO
Un nmero binario puro se represetna utilizando un conjunto de bits equivalente a una
palabra .
Supongamos ordenador con una palabra de 32 bits.
El bit ms ala izquierda se utiliza para representar el signo (0 para el + y 1 para el negativo).
Los restantes 31 bits representan el mdulo (valor del nmero) en complemento a 2
Representacin del 10
0 0000000000000000000000000001010
1111111111111111111111111110101
Le sumamos 1 ( si hay acarreo final se desprecia)
1111111111111111111111111110101
1
1111111111111111111111111110110
DECIMAL
1
1
2
3
4
5
6
7
8
9
BCD
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
0001
0101
+
1111 0001 1111 1001
1
1111 1001
1100 0100
Nmero -1994
1111 1001
1101 0100
DECIMAL EMPAQUETADO
En este sistema de codificacin se representa cada cifra decimal de un cuarteto (se eliminan
los bits de zona), salvo el primer octeto de la derecha en el que su cuarteto tambien de la
derecha lleva el signo con las mismas consideraciones que en el caso anterior).
Ejemplo: nmero 1994
0001
1
+
1001
1001
0100
1100
Nmero - 1994
0001
1
1001
1001
0100
1101
exponente
30
Mantisa
23 22
EXPONENTE
Se representa en mdulo y signo o en exceso a 2N-1 siendo siempre un nmero
entero.
MANTISA
Es un nmero real con punto decimal implcito a la izquierda de sus bits, siendo
representada generalmente en mdulo y signo o complemento a 1 o complemento a
2.
BASE DE EXPONENCIACIN
Es una potencia de 2 determinada por el fabricante del ordenador.
Ejemplo:
Un ordenador utiliza el siguiente formato para representar los nmeros en coma flotante:
10000100
Mantisa:
11000000000000000000000
Signo:
10000100
11000000000000000000000
10000100
00111111111111111111111
CDIGOS DE E/S
Los sistemas de codificacin alfanumrica sirven para representar una cantidad determinada
de smbolos, en binario. A cada smbolo le corresponder una combinacin de un nmero de
bits.
La asignacin de cdigos es arbitraria, y por tanto cada fabricante podra asignar una
combinacin diferente al mismo carcter. Para combatir el caos que ello provocara, se crean
cdigos que normalicen esta situacin, y que se aceptan entre toda la comunidad informtica
como estndares.
Veremos los ms importantes :
Cdigo BCD de intercambio normalizado
Interchange Code)
Utiliza 6 bits, por lo que puede asignar 26 = 64 valores (no incluye letras minsculas). A
veces se aade un bit de paridad impar, para comprobar errores, con lo que se tiene una
longitud de 7 bits, pero slo 64 valores vlidos .
El formato que siguen las palabras de ste cdigo es el siguiente:
Ejemplo:
Suponer un teclado en el que se pulsan estos caracteres :
754.32 BEATRIZ
La secuencia de cdigos que se generar
0000111 1000101 1000100 0111011 1000011 0000010 1000000 0110010 1110101
0110001 0010011 0101001 1111001 0011001
Bits de zona:
Si valen 00 : El carcter es de control.
Si valen 01 : Se trata de un carcter especial (no letra ni nmero).
Si valen 10 : Es un carcter en minscula.
Si valen 11 : Es un carcter en mayscula o numrico.
Bits de posicin:
Si los bits 2 y 3 valen 00 : Carcter en el rango A-I (o a-i).
Si los bits 2 y 3 valen 01 : Carcter en el rango J-R (o j-r).
Si los bits 2 y 3 valen 10 : Carcter en el rango S-Z (o s-z).
Si los bits 2 y 3 valen 11 : Carcter numrico.