Download Representación y codificación de la información.

Document related concepts

Sistema octal wikipedia , lookup

Código binario wikipedia , lookup

Nibble wikipedia , lookup

Decimal codificado en binario wikipedia , lookup

Sistema binario wikipedia , lookup

Transcript
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
TEMA 2 – CODIFICACIÓN Y REPRESENTACIÓN DE LA INFORMACIÓN:
ÍNDICE
1.
Conceptos previos. .......................................................................................................... 1
1.1.- Construcción de códigos ................................................................................................. 2
2.
Codificación: ................................................................................................................... 3
2.1. Sistemas de numeración .............................................................................................. 3
Sistema binario. .................................................................................................................................3
Sistema Octal o base 8: .....................................................................................................................4
Hexadecimal o base 16 ......................................................................................................................5
Tabla resumen de métodos de conversión entre bases. .....................................................................6
2.2.
Códigos alfanuméricos: ............................................................................................... 7
ASCII ( American Standard Code for Information Interchange) ......................................................7
Fieldata. .............................................................................................................................................8
BCD o Binary Coded Decimal. .........................................................................................................8
EBCDIC ( Extended Binary Coded Decimal Interchange Code)......................................................8
Unicode. ............................................................................................................................................8
3.
3.1.
Representación de la información: .................................................................................. 9
Coma fija: .................................................................................................................... 9
Signo y Módulo. ................................................................................................................................9
Complemento a 1 (Ca1) ....................................................................................................................9
Complemento a 2 (Ca 2): ................................................................................................................10
3.2.
Coma flotante. ........................................................................................................... 10
--------------- oOo ---------------
1. Conceptos previos.
La ejecución de un programa implica realizar unos tratamientos según un conjunto ordenado de
instrucciones sobre unos datos.
Se presentan los problemas de cómo representar y registrar la información físicamente.
La información se suministra al ordenador con un conjunto de símbolos y caracteres que nosotros
entendemos, pero deben de sufrir un proceso interno de traducción para que lo entienda el ordenador.
En el ordenador, la información, ya sean instrucciones o datos, se almacena en la memoria principal,
se procesa en UAL y se transfiere en las diferentes unidades en formato binario.
En éste tema, se explicará como se guarda físicamente la información, para lo que será necesario
seguir unos métodos para su representación y codificación.
Prof.: Justo Sáez Arenas [jsaez.com]
1
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
1.1.- Construcción de códigos
Un sistema digital utiliza información representada por magnitudes físicas que se limitan a tomar sólo
unos determinados valores discretos conocidos como señales. En el sistema digital estos valores
discretos se representan por 0 y 1 y generalmente se conocen como bit ( Binary digIT) que se define
como la unidad mínima de información.
Normalmente los bits no se almacenan individualmente, sino que forman grupos denominados
palabras, siendo la longitud de palabra con la que trabaja un ordenador, la cantidad de bits que trata
de forma conjunta.
Mediante estos conjuntos de bits codificaremos la información. Una forma de codificar es asignar una
correspondencia unívoca entre los símbolos a representar y la secuencia de bits que lo representa, de
forma que cada uno de los símbolos tenga una y sólo una secuencia de bits asignada.
Así por ejemplo queremos representar el conjunto de símbolos A = {a,b,c} con el grupo de bits B =
{0,1}.
Podríamos realizar una asignación como sigue:
A B
a
b
c
0
1
01
Pero ésta asignación pude dar lugar a diferentes representaciones. En al caso de tener una serie de bits
como 011, puedo interpretarlo como abb o como ca.
A
a
b
c
B
00
01
10
Normalmente solucionaríamos este problema obligando a que cada símbolo de A se
represente con la misma cantidad de bits.
En general, para codificar en binario un conjunto de n símbolos, será necesario un número de n bits
de modo que se cumpla.
Cantidad de bits >= log 2 n-símbolos
Ejemplos:
Si tenemos un sistema con tres tipos de señales diferentes y queremos representar once
símbolos cuantos bits necesitamos.
Tres puesto que 3 a la 3 son 27.
Queremos representar 352 símbolos en un sistema binario, cuantos bits necesitamos.
Nueve, 2 a la 9 son 512.
La combinación de bits más utilizada es la 8 y recibe el nombre de byte.
Prof.: Justo Sáez Arenas [jsaez.com]
2
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
2. Codificación:
2.1. Sistemas de numeración
Normalmente trabajamos con un sistema de numeración decimal pero existen otros. Así hemos visto
que los ordenadores utilizan un sistema binario, aunque también pueden trabajar con otros sistemas
que le resultan fáciles, como el octal o base 8 y el hexadecimal o base 16 que veremos a continuación.
Existen varios sistemas de numeración, los más comunes, como el decimal, son sistemas
posicionales, donde cada dígito tiene un peso concreto dependiendo de su posición.
Hay otros sistemas no posicionales como por ejemplo la numeración romana.
Los sistemas posicionales son aquellos en los que los valores de los números, no solo dependen de la
cifra utilizada sino de su posición.
En estos sistemas de numeración cada valor se obtiene a partir de la fórmula siguiente:
n
 (digito )i * (base )i
i
n = nº de dígitos
i = posición de 0 a n
base = sistema de numeración
La suma de todos los términos del sumatorio da lugar al número en base 10. Cuando hay parte
decimal, se aplica la misma fórmula pero con potencia negativa.
Sistema binario.
Se corresponde naturalmente con el contenido de los registros del ordenador de modo que
independientemente de su significado, la información se puede representar por un conjunto de dos
valores. Esta información mínima representada con 1 o 0 es lo que conocemos como bit (binary
digit). A partir de esta unidad elemental se manejan otras unidades superiores:
1 Byte = octeto = 8 bits
1 Kilobyte = 1024 Bytes
1 Megabyte = 1024 Kb
1 Gigabyte = 1024 Mb
1 Terabyte = 1024 Gb
Para convertir un número de binario a decimal usamos la fórmula general para calcular cualquier
número sabiendo que es un sistema posicional y sabiendo su base.
Ejemplo: 1011101(2 = 1 * 26 + 0 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 1 * 20 + = 93
Para convertir un número decimal a binario se divide sucesiva/ el número por dos. El último cociente
y los restos forman su representación en base dos.
Si el número en base diez tiene parte decimal se va multiplicando la parte decimal por potencias de
dos y las partes enteras resultantes forman el número binario. El proceso termina cuando la parte
decimal es nula.
Prof.: Justo Sáez Arenas [jsaez.com]
3
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
Ejemplos:
Realizar la comprobación de que el número 93 en base diez es el número binario de antes.
93/2/2/2.......= 1011101
Pasar 315(10 a base (2 = 100111011
Convertir 0.625(10 a base (2 = 0.101
Pasar 332´661(10 a base(2 = 101001100´101
El sistema binario escrito se denomina código binario natural. En general un ordenador utiliza sistema
más complicados que el binario dentro de estos el octal y el hexadecimal.
Además para datos numéricos se utilizan otros formatos para almacenarlos de forma que se utilice
mejor los recursos de la máquina, por ejemplo formatos de coma fija, formatos de coma flotante que
se basan en la representación como Ca1(completo a1) y Ca2, se verán más adelante.
Sistema Octal o base 8:
Sistema de numeración con ocho símbolos diferentes que son:0,1,2,3,4,5,6,7.
Este sistema se utiliza debido a la facilidad con que puede pasarse a binario para lo cual:
De binario a octal: tomamos la cifra binaria y cogemos grupos de 3 dígitos empezando por la derecha.
Pasamos cada grupo a octal y el conjunto de cifras obtenidas forman el grupo octal.
Ejercicio: Pasar 10110001001011(2 a base (8 = 26113(8
De octal a binario: se coge cada cifra en base 8 y se cambia por su correspondiente número de bits.
Ejercicio: Pasar 4375(8 a base (2 = 100011111101(2
De octal a decimal: utilizamos la forma general.
Ejercicio: 4375´672(8 = 4*8...........................= 2301´862
De decimal a octal: Igual que pasar de decimal a binario con la diferencia que en lugar de dividir
entre 2, se divide entre 8.
Ejemplo:
Pasar 372´395(10 a base (8 = 564´312
Prof.: Justo Sáez Arenas [jsaez.com]
4
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
Hexadecimal o base 16
Dec Hex.l
0
0
1
1
2
2
…
…
9
9
10
A
11
B
12
C
13
D
14
E
15
F
16
10
17
11
18
12
19
13
…
…
25
19
26
1A
…
…
30
1E
31
1F
32
20
Consta de 16 símbolos cogiendo desde 0 hasta 9 y continuando con las letras desde la A
hasta la F así obtendríamos la siguiente tabla:
Conversión de binario a hexadecimal: se hace grupos de 4 bits y se procede como en el
octal.
Ejemplo:
Pasar 100010111111010´1001101 (2 a hexadecimal(16 = 45FA´95
De hexadecimal a binario:
Se separan cada una de las cifras del hexadecimal y se pone su correspondiente binario
utilizando cuatro cifras.
Ejemplo
Pasar A34´E2 (16 a base (2 = 101000110100´11100010
De hexadecimal a decimal: aplicando la forma general de los sistemas de numeración
posionales.
B7F (16 = 2943 (10
De decimal a hexadecimal:
Se hacen divisiones entre 16.
4573´79 (10 = 11DD´CA3.
Así podemos construirnos una tabla general de equivalencias como sigue:
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Prof.: Justo Sáez Arenas [jsaez.com]
Binario
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
Octal
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
Hexadecimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
5
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
Tabla resumen de métodos de conversión entre bases.
A modo de resumen, en la siguiente tabla se indica el método a seguir para pasar de un sistema de
numeración a otro.
Decimal
Binario
Octal
Hexadecimal
Decimal
----
Div - Mult
Div - Mult
Binario
Fórmula Gral.
----
Octal
Fórmula Gral.
Por Tabla
----
Hexadecimal Fórmula Gral.
Por Tabla
Por Tabla
Div - Mult
Grupos de 3 bits Grupos de 4 bits
Por tabla
----
Donde:





Formula Gral. = Fórmula general de numeración.
Div -Mult = Divisiones sucesivas parte entera y multiplicaciones sucesivas la
parte decimal.
Grupo de 3 bits = del binario se cogen de 3 en 3 para pasarlos a octal.
Grupo de 4 bits = del binario se cogen de 4 en 4 para pasarlos a hexadecimal.
Por tabla = Según la tabla y si no se pasa primero a binario.
Prof.: Justo Sáez Arenas [jsaez.com]
6
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
2.2. Códigos alfanuméricos:
ASCII ( American Standard Code for Information Interchange)
Utiliza 7 bits aunque también existe con 8 bits. Podemos dividir la tabla ASCII en grupos:
- Códigos transparentes: no se corresponden a ningún carácter alfanumérico y se utilizan
para transmitir instrucciones de control como por ejemplo indicar un salto de línea a la
impresora, emitir un pitido, etc.
-
Símbolos y números: ocupan las posiciones desde el 32 al 64 ( Decimal).
Letras: ocupan las posiciones desde 65 hasta 127, se incluyen las mayúsculas, minúsculas
y algunos símbolos matemáticos y de puntuación.
En Windows 98 se utiliza la codificación ANSI, similar al ASCII, pero cambian algunos
caracteres. De ahí que si intentamos sacar con la combinación de teclas [ALT +Cod.ascii],
algunos caracteres no son como nos aparecen en la tabla ASCII.
Prof.: Justo Sáez Arenas [jsaez.com]
7
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
Fieldata.
Utiliza 6 bits con lo cual permite codificar 64 caracteres. En este código no se hace ninguna
distinción entre letras minúsculas y mayúsculas.
BCD o Binary Coded Decimal.
Normalmente utilizaba 6 bits y en la actualidad añade un bit adicional para controlar posibles
errores de transmisión. Los caracteres numéricos del 1 al 9 se corresponden con su representación
en binario por eso se denominan Decimal Codificado en Binario, básicamente su estructura es la
siguiente:
Significado Bits de Verificación Bits de zona Bits de posición
Bit nº.:
6
5
4
3 2 1 0
Bit de verificación: Se utiliza para controlar posibles errores de codificación.
Bits de zona: es el 4º o 5º bit, cuando son 00 indican que el que se representa es un número.
Bits de posición: codifican el carácter.
EBCDIC ( Extended Binary Coded Decimal Interchange Code).
Similar al BCD, pero utiliza 8 bits por lo que representa 256 símbolos, lo que posibilita codificar
más caracteres de control y especiales. Es bastante utilizado en máquinas IBM.
Unicode.
Es un juego de caracteres en el que se emplean dos bytes (16 bits) para representar cada carácter.
Esto permite la representación de 65536 símbolos, lo que posibilita representar cualquier carácter
de cualquier lenguaje escrito del mundo, incluido el chino, japonés o coreano. Lo utiliza
Windows NT.
Prof.: Justo Sáez Arenas [jsaez.com]
8
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
3. Representación de la información:
Para representar datos numéricos se usan formatos que van a ahorrar espacio de memoria ya que si
representamos con las codificaciones anteriormente estudiadas sería muy difícil de manejar, en casos
que necesitásemos utilizar números de muchas cifras.
Básicamente podemos diferenciar formatos en “coma fija” y en “coma flotante” que nos va a permitir
almacenar el signo, la parte entera y la parte decimal de un número.
3.1. Coma fija:
En este formato la coma ocupa una posición constante. Se puede almacenar de tres formas
diferentes, en módulo y signo, complemento a 1 y complemento a 2.
Vemos a continuación una tabla con números codificados de las tres formas.
DECIMAL MÓDULO Y SIGNO
+127
0-1111111
+64
0-1000000
+5
0-0000101
+0
0-0000000
-0
1-0000000
-5
1-0000101
-30
1-0011110
-127
1-1111111
Ca 1
=
=
=
=
1.1111111
1.1111010
1.1100001
1.0000000
Ca 2
=
=
=
0-0000000
0-0000000
1-1111011
1-1100010
1-0000001
Signo y Módulo.
Es una forma de representar los números positivos y negativos.
En Los números positivos el primer bit es un 0 y el resto indican el valor absoluto
Para números negativos el primer bit es un 1 y el resto indican el valor absoluto.
Como se observa el cero tiene dos posibles representaciones con lo que se desperdicia una
posibilidad de codificación, esto se intentara evitar con otros tipos de representaciones.
Así mismo se observa que podemos representar mediante 8 bits valores entre el –127 y el +127.
Complemento a 1 (Ca1)
En este tipo de representación binaria, los números positivos se representan igual que en modulo
y signo. Los negativos se representan como complemento a 1 del número positivo.
El cero sigue teniendo dos representaciones.
El Ca 1 de un número en binario se calcula directamente cambiando los 0 por 1 y viceversa. Por
ejemplo si queremos representar el -5, tomamos el +5 y cambiamos los ceros por unos y
viceversa.
Prof.: Justo Sáez Arenas [jsaez.com]
9
Sistemas Informáticos Multiusuario y en Red
Tema 2. Codificación y Representación de la Información
Complemento a 2 (Ca 2):
Este tipo de representación los números positivos se representan con modulo y signo y los
negativos con el Ca 2, el cual se calcula pasando previamente a Ca 1 y sumando 1.
Con éste método el cero solo tiene una representación. Y además para realizar la resta de dos
números el ordenador realiza un complemento a 2 y luego suma, con lo que un circuito sumador
sirve como restador, gracias a pasar el sustraendo a complemento a 2.
3.2. Coma flotante.
En oposición al término de números en coma aparece otro código de representación de números
reales denominado en punto o coma flotante (CF ó FP). Este nombre se deriva del hecho de que
la posición de la coma puede flotar o moverse a cualquier posición del número y permitir por
ello una mayor precisión en el mismo.
Para entender el significado de los números en CF, acudimos a ejemplos más evidentes del
sistema decimal:
Supongamos que tenemos los números reales con seis dígitos: 3135,07 y 0,04576.
En notación de coma fija con 4 dígitos para los enteros y 2 dígitos para los decimales se
escribirían 3135,07 y 0,04, perdiendo información en el segundo de los números.
Manteniendo el mismo número de 6 dígitos significativos, si se pasa a una notación de CF
normalizada, en donde la coma decimal se sitúa a la izquierda del primer dígito significativo, es
decir la parte entera vale 0, se escribirán 0,313507 x104 y 0,457600 x 10-1.
Como se observa en estos ejemplos, la coma decimal se ha desplazado (ha flotado) hacia la
derecha o hacia la izquierda para obtener la misma estructura en la notación.
En el caso del sistema binario la coma binaria flota de la misma forma:
Sean los números binarios 0101,102 (5,510) y 0,0112 (0,37510) en CF normalizada, con 5 dígitos
significativos, se representarían como 0,10110 x23 y 0,11000 x 2-1.
Observar que siempre el primer dígito binario significativo debe ser un '1'.
La notación en CF es más lenta de procesar y menos precisa que la notación en coma fija, pero
dado un tamaño fijo de dígitos, permite un mayor rango en los números que se pueden
representar.
Debido a que las operaciones aritméticas que se realizan con números en CF son muy complejas
de realizar, muchos sistemas destinan un procesador especial para la realización específica de
este tipo de operaciones, denominado coprocesador matemático o numérico.
Prof.: Justo Sáez Arenas [jsaez.com]
10