Está en la página 1de 13

Representación de los datos

1. Introducción

Seguramente habrá oído decir muchas veces que los ordenadores son máquinas digitales
porque sólo son capaces de manejar unos y ceros. Pues bien, antes de empezar a estudiar
sistemas operativos es importante comprender bien el significado de tal afirmación. Este es
uno de los objetivos del presente documento, donde además aprenderá:

2. Mecánica del conteo

Tenemos tan asumido el sistema decimal de numeración que ni siquiera llegamos a


plantearnos si es posible contar de otra manera. Sin embargo, si nos fijamos en la mecánica
que seguimos inconscientemente al contar nos daremos cuenta de que en realidad el sistema
decimal no es más que un caso particular y admitiremos la posibilidad de otros sistemas de
numeración tales como el binario y hexadecimal.

Supongamos que el artefacto representado en la figura 2.1. es un contador, conectado a un


detector de manera que puede contar, por ejemplo, las personas que pasan por una puerta. Está
provisto de dos dígitos a los que se ha llamado d0 y d1.

Número de personas
que han entrado
00
01
02
03
d1 d0 04
05
detector 06
07
08
09
10
11

Figura 2.1.

Al principio el contador muestra la cantidad 00. Conforme vayan pasando personas por la
puerta el contador se irá incrementando: 01, 02, etc. Inicialmente sólo cambia el dígito d0, que
va tomando sucesivamente todos los valores desde 0 hasta el 9. Mientras no entren más de
nueve personas no será necesaria la intervención del dígito d1, que permanecerá fijo a 0. Hasta
que se que llega a 09.

1
Una vez se ha alcanzada la cantidad 09, la entrada de una persona más, la décima, desbordará
la capacidad de representación del dígito d0. Esto significa que el dígito d0 ya ha utilizado
todos los caracteres permitidos en decimal y vuelve a empezar repitiendo el 0. Si no se hiciera
nada, el contador marcaría la cantidad 00. Por eso, el desbordamiento de d0 va acompañado de
un cambio del dígito d1, que pasa de 0 a 1. Así, en el contador mostrará la cantidad 10. A partir
de este momento, el contador seguirá aumentando: 10, 11, 12, etc.

Lo mismo que ocurre con el dígito d0, el d1 irá tomando sucesivamente todos y cada uno de
los caracteres del sistema decimal, empezando por el 0 y terminando por 9, pero sus cambios
sólo se producirán cuando se desborde d0.

Observe la figura 2.2. donde se representa un contador binario de 4 bits. Ahora los dígitos se
llaman bits y sólo tiene capacidad para representar dos caracteres, 1 y 0. El contador consta de
4 bits que se numeran b0 hasta b3.

Al principio el contador muestra la cantidad 0000. Cuando entra la primera persona el bit b0
cambia a 1. Al llegar la segunda persona el bit b0 vuelve a cambiar, pero como ya a tomado
todos los valores posibles repite el valor 0. El bit b0 se ha desbordado. Esto significa que el
bit b0 ya ha utilizado todos los caracteres permitidos y vuelve a empezar repitiendo el 0.

Si no se hiciera nada, el contador marcaría 0000. Por eso, el desbordamiento del bit b0 va
acompañado de un cambio del bit b1, que pasa de 0 a 1. Así, en el contador mostrará la
cantidad 00000010. Con la entrada de la tercera persona el bit b0 vuelve a cambiar de cero a
uno. Con la cuarta persono b0 se desborda otra vez, con lo que b1 cambia de 1 a cero.
Observe que ahora también el bit b1 se ha desbordado. Esto produce el cambio del bit b2.

Número de personas
que han entrado
0000
0001
0010
b 3 b2 b1 b0
0011
0100
detector
0101
0110
0111
1000
1001
1010
1011

Figura 2.2.

El único cambio importante que hay entre el sistema de numeración decimal y binario es el
número de caracteres disponibles para la representación de números. En el primer caso se
dispone de 10 caracteres, mientras que en el segundo sólo se dispone de dos. En realidad sería
posible emplear cualquier número de caracteres, siendo posible infinitos sistema de
numeración.

2
De todos los sistemas de numeración posibles en la práctica sólo se emplean el decimal,
binario y hexadecimal. El sistema de numeración decimal es el que usamos de forma natural.
El sistema de numeración binario surge con la invención de los ordenadores. Y finalmente,
como veremos más adelante, el sistema hexadecimal resulta útil porque nos permite reescribir
cantidades binarias de forma mucho más compacta.

3. Teorema del conteo

En estadística se estudia un teorema, al que se denomina teorema fundamental del conteo y


que dice lo siguiente: Si un suceso puede realizarse de n1 maneras diferentes, y si,
continuando el procedimiento, un segundo suceso puede realizarse de n2 maneras diferentes,
y si, después de efectuados, un tercer suceso puede realizarse de n3 maneras diferentes, y así
sucesivamente, entonces el número de maneras en que los sucesos pueden realizarse es igual
al producto:

n1 . n2 . n3 . . .

Por ejemplo, suponga que una placa de automóvil consta de dos letras distintas seguidas de
tres dígitos decimales de los cuales el primero no es cero. ¿Cuántas placas diferentes pueden
grabarse?

No puede ser 0

Dos letras Tres dígitos


distintas decimales

Figura 3.1.

La primera letra puede colocarse de 26 maneras diferentes (supuesto un alfabeto de 26 letras),


la segunda letra de 25 maneras (puesto que la letra grabada de primera no puede escogerse
como segunda letra), para el primer dígito hay 9 números o sea 9 maneras y para cada uno de
los otros dos dígitos 10 maneras. Por lo tanto pueden grabarse:

26 . 25 . 9 . 10 . 10 = 585000 placas diferentes

3
4. Agrupaciones binarias

Los sistemas digitales manejan grupos de unos y ceros, en la práctica se encuentran


estandarizadas las agrupaciones mostradas en la figura 4.1, que reciben los nombres: nibble,
byte, word y double word. Observe que el número de bits de las agrupaciones varía según
potencias de 2. El nibble se compone de 22 bits, el byte de 23 bits, la word de 24 y la double
word de 25 bits.

32 bits 16 bits 8 bits 4 bits


b3 b2 b1 b0
Nibble
b7 b6 b5 b4 b3 b2 b1 b0
Byte
b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
Word
b31 b30 b29 b28 b27 b26 b25 b24 b23 b22 b21 b20 b19 b18 b17 b16 b15 b14 b13 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 Double word

Figura 4.1.

La cuestión que se plantea ahora es ¿Cuántas combinaciones diferentes o códigos binarios se


pueden formar con una agrupación determinada?.

El teorema fundamental del conteo nos permite calcular el número de combinaciones binarias
que se podrá formar con n bits, de la misma forma que se han calculado el número de placas
de matrícula. Para explicarlo nos centraremos en el caso particular de la figura 4.2, donde se
han representado 4 bits: b0, b1, b2 y b3. Cada bit puede adoptar 2 estados diferentes: 1 o 0. Por
lo tanto, con 4 bits (1 nibble) se podrán formar 2 por 2 por 2 por 2, o sea, 24 igual a 16
números o combinaciones binarias diferentes.

b3 b2 b1 b0
2. 2. 2 . 2 = 2 4 = 16

Figura 4.2.

En general, con n bits se podrán formar un número N de combinaciones binarias diferentes,


que se obtendrá mediante la expresión:

n
N = 2
Con esta expresión se podrá hallar el número de combinaciones binarias que se pueden formar
con cada una de las agrupaciones de la figura 4.1.

4
5. Sistema de numeración binario

Se dice que el sistema de numeración binario es de base 2 porque emplea dos caracteres para
la representación de números: 0 y 1. Para indicar que una cantidad está dada en el sistema
binario se suele emplear las siguientes notaciones:

110b
1102

En el primer caso se añade el subíndice 2, mientras que en el segundo se añade la letra "b" al
final del número. Ambas notaciones son igualmente correctas.

Para la conversión de binario a decimal se aplica la siguiente expresión:

0 1 2 3
N = 2 b 0 + 2 b1 + 2 b 2 + 2 b 3 + ...

Como ejemplo de aplicación de dicha expresión vea la figura 5.1, donde se demuestra que la
cantidad 100b equivale al valor decimal 4. Cada bit “b” se multiplica por una potencia de dos
que depende de su posición. Esto se expresa diciendo que cada bit tiene un peso. Por ejemplo,
el bit b2 tiene un peso de 22 = 4. Una vez realizadas dichas multiplicaciones, se suman sus
resultados para obtener la cantidad decimal correspondiente.

Para hallar el equivalente binario de un número decimal se procede como se muestra en la


figura 5.2. Se divide el numero decimal repetidas veces por dos, buscando obtener restos que
sean uno o cero. Las divisiones se terminan cuando se obtiene un cociente igual a uno.
Entonces, el número binario se forma tomando como bit de mayor peso el último cociente y
como bit de menor peso el primer resto.

Figura 5.1. Figura 5.2.

5
6. Sistema de numeración hexadecimal

Se dice que el sistema de numeración hexadecimal es de base 16 porque emplea 16 caracteres


para la representación de números: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Para indicar
que una cantidad está dada en el sistema hexadecimal se suele emplear las siguientes
notaciones:

1A2D16
1A2Dh
0x1A2D

En el primer caso se añade el subíndice 16, en el segundo se añade la letra h al final del
número y en el último caso se añada el prefico "0x". Las tres notaciones son igualmente
correctas.

En la figura 6.1. se relaciona cada uno de los 16 caracteres del sistema hexadecimal con las
correspondientes cantidades binarias. Observe que los 16 caracteres del sistema de
numeración hexadecimal abarcan todas las combinaciones posibles con 4 bits. Gracias a esto
resulta muy fácil convertir un número binario a hexadecimal y viceversa.

Figura 6.1.

6
Veamos como pasar de hexadecimal a binario tomando como ejemplo el caso de la figura 6.2.
En primer lugar, el número 1100011b se divide en dos grupos de 4 bits. Como el número de
bits no es suficiente para hacer dos grupos de 4 bits cada uno, se completa el grupo de la
izquierda añadiendo un cero no significativo. Ahora se comprueba la equivalencia de cada
grupo con los dígitos hexadecimales de la figura 4.1. Así, se llega a la conclusión de que
1100011b equivale a 63h.

1 1 0 0 0 1 1
cero no significativo 0 1 1 0 0 0 1 1
6 3
Figura 6.2.

La conversión contraria, es decir, de hexadecimal a combinación binaria, es igualmente


sencilla. Como ejemplo considere el caso de la figura 6.3. Se parte del número hexadecimal
4Eh. De la figura 4.1. se deduce que el caracter hexadecimal 4 se corresponde con 100b,
mientras que el carácter E se corresponde con 1110b. Se obtienen dos grupos de 4 bits, donde
el cero emplazado más a la izquierda no es significativo y puede eliminarse. Así, se llega a la
conclusión que 4Eh equivale a 1001110b.

4 E
cero no significativo 0 1 0 0 1 1 1 0

1 0 0 1 1 1 0

Figura 6.3

El sistema hexadecimal de numeración no lo utilizan los ordenadores ni tampoco las personas.


Sin embargo, resulta muy práctico porque permite representar combinaciones binarias de
manera compacta y, además, es fácilmente traducible a binario y viceversa. Nuestro interés en
el sistema de numeración hexadecimal no es como sistema de numeración propiamente dicho,
sino como simple medio de escritura de las combinaciones binarias.

7
7. La memoria principal

Uno de los elementos más importantes del ordenador es la memoria principal, también
conocida como memoria RAM. La información se almacena de forma perdurable en el disco
duro, pero para usarla hay que cargarla previamente en la memoria principal.

Para explicar la función de la memoria principal recurriremos al símil de la figura 7.1.


Suponga que en una oficina hay un archivador y una mesa de trabajo. En el archivador se
guardan expedientes. Cuando se quiere consultar o modificar un expediente se extrae del
archivador y se lleva a la mesa. Entonces, la consulta o modificación se realiza sobre la mesa
y finalmente el expediente se devuelve al archivador.

Figura 7.1.

En un ordenador las funciones del archivador y la mesa de trabajo las desempeñan el disco
duro y la memoria, respectivamente. Suponga que se desea editar un documento de texto. El
documento es un fichero que está en el disco duro. Para editarlo hay que abrirlo, es decir,
cargarlo en la memoria. Normalmente esta operación se efectúa haciendo doble clic sobre el
icono del fichero. Entonces, la edición se realiza en la memoria y finalmente el texto se
guarda en el archivo del disco duro.

Como se muesta en la figura 7.2 la memoria se compone de celdas apiladas y numeradas. A


los números de las celdas se les denomina direcciones y suelen expresarse en hexadecimal. La
primera celda tiene a dirección 00000000h, la siguiente la 00000001h y así sucesivamente. No
se preocupe si no sabe lo que es el sistema hexadecimal, lo verá más adelante en el presente
tema.

Actualmente los ordenadores PCs soportan hasta un máximo de 4.294.967.296 celdas (algo
más de 4 billones). Dicha cantidad se expresa en hexadecimal del siguiente modo:
FFFFFFFFh.

En la figura 7.2 también se muesta la composición interna de una celdas. Observe que consta
de 8 subceldas. Estas subceldas se llaman bits y se numeran desde b0 hasta b7. Un bit sólo es
capaz de contener un uno o un cero. Por otra parte, a una colección de 8 unos y ceros se le
llama byte. Por tanto, diremos que una celda tiene una capacidad de 1 byte.

En el caso de la figura 7.2. observe que la celda cuya dirección es 00000002h contiene el byte
11110000.

8
Figura 7.2.

Las celdas de la memoria principal se distinguen mediante un número al que se llama


dirección. Dichos números son de 32 bits. Por tanto, son posibles 232 = 4 (algo más de 4
billones). La primera dirección será:

00000000 00000000 00000000 00000000 b = 00 00 00 00 h

y la última dirección será:

11111111 11111111 11111111 11111111 b = FF FF FF FF h

Observe que es mucho más cómodo expresar dichas cantidades en hexadecimal. Además, la
traducción de binario a hexadecimal y viceversa es inmediata.

Como decíamos al principio, de los infinitos sistemas de numeración posibles en la práctica


sólo se emplean el decimal, binario y hexadecimal. El sistema de numeración decimal es el
que usamos de forma natural. El sistema de numeración binario surge con la invención de los
ordenadores. Y finalmente el sistema hexadecimal resulta útil porque nos permite reescribir
cantidades binarias de forma mucho más compacta.

9
8. Códigos alfanuméricos

El ordenador sólo es capaz de manejar la información que se halla en su memoria (recuerde el


símil de la oficina). Por tanto, si está leyendo o editando un texto es gracias a que dicho texto
se ha cargado previamente en memoria.

Entonces surge el siguiente problema: los textos se componen de letras, espacios en blanco,
números y otros caracteres; mientras que la memoria del ordenador sólo es capaz de contener
unos y ceros.

En la figura 8.1 se muestra cómo solucionar dicho problema. Se supone que la palabra "hola"
se encuentra ocupando 4 direcciones de la memoria. Para poder guardar la palabra en la
memoria se asigna a cada letra una combinación de unos y ceros. A estas combinaciones se les
denomina códigos. Por ejemplo, en la figura 8.1 el código de la letra "a" es 01100001b.

Por tanto, en nesario asingar un código a cada letra, número, o signo de puntuación. Pero esto
no es suficiente, ya que en un texto no solo hay caracteres imprimibles. También hay ordenes
que controlan el formato, como por ejemplo: retorno de carro, nueva línea, tabulador, etc.
Estas ordenes también deben ser codificadas.

Los códigos se asignan arbitrariamente, pero para poder intercambiar información entre
diferentes usuarios es imprescindible que todo el mundo acepte el mismo juego de códigos.
Seguidamente se estudiarán los juegos de cóndigos más comunes, a saber: ASCII, ISO 8859 y
unicode UTF-8.

Figura 8.1.

10
9. Código ASCII

En los años 60, U.S.A. era la primera potencia mundial en la fabricación de ordenadores y
otros dispositivos digitales con capacidad para el manejo de textos. En ese país surgió
entonces la necesidad de establecer un código estándar, que facilitara la comunicación entre
equipos de distintos fabricantes.

Como consecuencia, el organismos ANSI (American National Standards Institute) estableció


el código ASCII (American Standar Code for Information Interchage). Posteriormente la ISO
(Organización Internacional para la Estandarización) incorporó el codigo ASCII en su norma
ISO 646. Y así el código ASCII adquirió caracter internacional.

El código ASCII utiliza 7 bits (figura 9.1). Como la memoria del ordendor se compone de 8
bits, queda un bit sin utilizar. Este bit se puede dejar fijo a cero, pero lo habitual es usarlo para
implementar un sistema de detección de errores por paridad par o impar. En tal caso este bit
recibe el nombre de bit de paridad.

Figura 9.1.

Con 7 bits se pueden hacer 27 = 128 códigos diferentes. En la figura 9.2 se muestran todos los
códigos organizados en forma de tabla.

La mayor parte de los códigos de control carecen de interés para nosotros, más adelante se
hablará de algunos. Por lo que respecta a los códigos de caracteres imprimibles, vemos que
están presentes símbolos tales como: el espacio en blanco, admiración, comillas, dólar, etc;
también encontramos códigos para representar los caracteres del 0 al 9, las letras mayúsculas
y minúsculas, etc.

No obstante, faltan las vocales acentuadas, la letra “ñ” y la diéresis, que se utilizan en
Español. En realidad, los caracteres ASCII imprimibles son sólo suficientes para textos en
lengua inglesa y no tienen en cuenta las particularidades de otras lenguas.

11
Figura 9.2

10. ISO 8859

El código ASCII de 7 bits supone un grave problema para muchos usuarios no anglófonos por
carecer de muchos caracteres habituales en otras lenguas. Por ejemplo, el Español emplea la
letra "ñ" que no tiene código ASCII.

Para solucionar este problema la ISO (Organización Internacional para la Estandarización)


elaboró la norma ISO 8859. Esta norma aumenta el números de bits dedicados a la
codificación, pasando de 7 a 8 bits. Para los ordenadores la ampliación no supone ningún
problema, pues las celdas de memoria se componen precisamente de 8 bits.

En la norma ISO 8859 existen un total de 28 = 256 códigos. Los primeros 128, del 0 al 127, se
corresponden exactamente con los códigos ASCII mostrados en la figura 3.2. Los 128
siguientes, del 128 al 255, se emplean para codificar carácteres adicionales própios de otras
lenguas.

12
Desgraciadamente los nuevos 128 códigos generados con la ampliación no son suficientes
para abarcar las pecuiaridades de todas las lenguas y por eso la norma ISO 8859 presenta 16
variantes o partes. Cada parte hace una asignación diferente de los nuevos 128 códigos.

A nosotros nos interesa la parte 1 de la norma ISO 8859, conocida como ISO 8859-1 o
también Latin-1. Esta parte es adecuada para el Español ya que incluye las letras "ñ" y "Ñ",
así como las vocales acentuadas y con diéresis. En la figura 10.1. se muestra una tabla con los
códigos ampliados en la norma ISO 8859-1.

Figura 10.1

13