Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Tecnología del PC

[Home]  [Inicio]  [Índice]


El Ordenador Electrónico Digital

§1  Presentación:

Imaginamos sobradamente conocidos por cualquier estudiante los principios generales sobre los que se basan los ordenadores electrónicos digitales, las máquinas en las que probablemente se ejecutarán sus programas. Sin embargo, no está de más un brevísimo repaso a fin de refrescar y traer al tiempo presente algunos conceptos.

Nota: En muchos países hispano-hablantes de cultura técnica más influenciada por USA, se utiliza el término "computadora" por ordenador; más parecida a su equivalente inglés "Computer". Por su parte, la versión castellana deriva del francés "Ordinateur".

§2 Ordenador electrónico digital

Cualquier dispositivo capaz de resolver problemas mediante proceso de la información en forma discreta. Recordemos que aquí el término "digital" se usa en contraposición a "analógico",  lo que significa que la información se representa internamente de forma numérica (números racionales). Mediante el recuento, comparación y manipulación de estos números de acuerdo con un conjunto de instrucciones almacenadas en su memoria, un ordenador digital puede realizar multitud de tareas: Realizar complejos cálculos matemáticos; reproducir una melodía, o ganar una partida de ajedrez al campeón mundial humano de la especialidad.

La información se presenta en forma de datos e instrucciones (algoritmos) para su manipulación, y como hemos señalado, está representada internamente de forma "digitalizada", es decir, reducida a cantidades discretas representadas por números, y estos a su vez expresados en formato binario. Este formato utiliza magnitudes que solo pueden adoptar dos valores mutuamente exclusivos (cierto y falso; cero o uno; encendido o apagado; etc). Por consiguiente, pueden representarse con solo dos dígitos O y 1. En contraposición el formato decimal tiene diez dígitos (del 0 al 9 en el sistema arábigo). Lo anterior es válido no solo para la información textual (representada numéricamente mediante el código ASCII, Unicode, o cualquier otra convención); también las imágenes, los colores, los sonidos y los algoritmos, están almacenados en el ordenador en formato binario.

Nota: No confundir los conceptos: electrónico (basados en la electrónica); digital (utilizar magnitudes discretas representadas por números) y binarios (utilizar este modo de representación, una lógica y un álgebra de Boole). Nada impide la existencia de ordenadores no electrónicos (por ejemplo ópticos, biológicos o basados en fluidos); también han existido y existen ordenadores analógicos (no digitales); y tampoco existe inconveniente teórico para la existencia de ordenadores no binarios.

El hecho de que los actuales ordenadores electrónicos digitales sean binarios, se debe, entre otras razones, a que los circuitos digitales actuales están especialmente adaptados a la utilización de la lógica binaria (volveremos sobre esto más adelante), pero han existido intentos de construirlos en base a otras lógicas, por ejemplo "ternarias". Actualmente se empieza a hablar de la computación cuántica, basada en algo distinto a dos estados mutuamente exclusivos.

Resulta así, que el universo de las actuales computadora electrónica digitales es un universo de números binarios que representan información en forma de datos e instrucciones.

Aunque en último extremo internamente todo son números, a los informáticos les gusta referirse a los primeros (los datos), clasificándolos en tres grandes apartados que se corresponden mejor con la imagen que el humano tiene de ellos: numéricostextuales (o alfanuméricos) y binarios.  Cuando estos datos no están en la memoria interna sino en dispositivos externos (generalmente discos magnéticos u ópticos), se agrupan en ficheros, de los que existen infinidad de tipos, aunque es frecuente agruparlos en tres grandes categorías: Textuales; ejecutables y binarios.

§3 Datos numéricos

Se refieren evidentemente a las magnitudes numéricas clásicas de las matemáticas. Aunque han existido otros sistemas (por ejemplo el sistema de numeración Romano), nuestra cultura "Occidental" actual, utiliza para su representación exclusivamente el denominado sistema de numeración decimal con cero , inventado por la antigua cultura Indostánica; sin embargo, la notación que empleamos es arábiga [5]. La razón de que haya prevalecido frente al sistema latino es simplemente que es mucho más adecuado para las operaciones aritméticas.

En cuanto al sistema de codificación empleado para representarlos en los ordenadores, ya hemos dicho que es el sistema de numeración binario . Su álgebra es la de Boole [1], y por lo demás, el concepto es universal y no tiene idiomas o matices (suerte de los matemáticos). La notación empleada para representar gráficamente estos dígitos binarios suele ser de Ceros y Unos.

La necesidad de representar cantidades positivas y negativas ha motivado la aparición de algunas variedades de representación (binarias desde luego) a las que nos referiremos a en el capítulo dedicado a la Representación interna y rango de las variables numéricas ( E2.2.4a) del manual C++; su conocimiento es importante, ya que nos permitirá conocer como están almacenados internamente los números y comprender el significado de algunas las operaciones de C++.

Contra lo que ocurre con los datos textuales (a los que nos referimos inmediatamente ), existen diversas formas de representación simbólica (en el texto de los programas) de las cantidades numéricas, de forma que no siempre se representan en formato decimal como sería de esperar. En la sección Formas de representación simbólica ( E2.2.4b) se exponen detalles de los formatos utilizados.

§4 Datos textuales

Se refiere a la idea que todos tenemos de aquella información que puede ser representada mediante la escritura. Este tipo de datos tiene tres atributos o características que conviene matizar:

  • Lengua natural [2] en que se haya representado, que puede ser cualquiera de las conocidas: Español, Francés, Inglés, Alemán, etc.

  • Sistema de escritura utilizado, que para nosotros es el denominado "Sistema occidental" (que se basa en un alfabeto de raíz latina), aunque naturalmente existen otros: Árabe, Chino, Japonés, Griego, etc.

  • Sistema de codificación empleado para traducir los grafos del alfabeto a números. Se empezó utilizando el Us-ASCII, pero actualmente el sistema más utilizado es Unicode ( E2.2.1a).

§5 Datos binarios

La informática trata cada vez más con los tipos de datos denominados "Multimedia", sonidos e imágenes [3], en multitud de formas y calidades: Monoaural, estereo, Dolbi-digital, MP3, etc. para los primeros; estáticas o en forma de flujo (stream); en color, o en blanco y negro, etc. para las segundas.

Aunque tanto los sonidos como las imágenes son de naturaleza intrínsecamente analógica, los informáticos han inventado sistemas para digitalizarlas (reducirlas a números) con la menor pérdida de calidad y de la forma más comprimida posible. Aquí se habla de "codecs" para referirse a los diversos algoritmos que a la postre reducen los sonidos o imágenes a ficheros de números y posteriormente reconstruyen los sonidos e imágenes a partir de los números. Estos ficheros son denominados de forma genérica como "binarios".

§6 Los sistemas de representación numérica

Una vez establecido que el universo interno del ordenador electrónico digital es numérico, resulta interesante resaltar que las características físicas de los dispositivos eléctricos, hacen que sea muy fácil representar con ellos magnitudes binarias; simplemente haciendo corresponder los dos posibles valores de la variable con dos estados físicos de un circuito o dispositivo. Por ejemplo, con los estados de: Conducción no conducción; tensión, sin tensión; magnetizado no magnetizado; con luz, sin luz; etc.

Como el álgebra de Boole maneja variables que solo pueden tener dos estados ("cierto" y "falso"), es muy fácil representar y emular comportamientos y ecuaciones de dicha álgebra mediante circuitos electrónicos. Así, construir un circuito electrónico que responda (que proporcione como salida) el OR, AND, NOR, XNOR, etc de unas ciertas variables de "entrada", es trivial desde el punto de vista de diseño de circuitos lógicos (puede diseñarse fácilmente un circuito digital que responda a unas "Ecuaciones" lógicas -de Boole- por complejas que sean).

§6.1 Sistema decimal

En cuanto al problema de representar internamente cantidades numéricas, el sistema tradicional (el decimal con cero al que estamos acostumbrados), no es muy adecuado para los dispositivos electrónicos, puesto que aquí, al ser un sistema de base 10,  las variables (las cifras), pueden tener diez valores distintos (los guarismos 0 al 9 si utilizamos el sistema arábigo de numeración).

Recordemos que en este sistema, una cantidad cualquiera, por ejemplo 1798, en realidad se lee como:

1 x 103 + 7 x 102 + 9 x 101 + 8 x 100   ==  1 x 1000 + 7 x 100 + 9 x 10 + 8 x 1

  Observe la diferencia entre los diversos conceptos involucrados: el número o cantidad "mil setecientos noventa y ocho", su representación en el sistema decimal (1978) y las cifras o guarismos que componen su representación en este "sistema de numeración" (en este caso cuatro cifras: 1, 7, 8 y 9 colocadas en un cierto orden).

Desde la escuela primaria sabemos que en este sistema, el valor de las cifras viene complementado por su posición en el conjunto (decimos que es "posicional"); de forma que el valor total de una expresión viene representado por el producto de su valor-base (0 a 9) multiplicado por la potencia de 10 que corresponda según su posición. Al final se suman los resultados parciales.

Resulta así que en el sistema decimal, la cantidad mas alta que se puede representar mediante una cantidad de cuatro cifras, nnnn es, como máximo:

9 x 103 + 9 x 102 + 9 x 101 + 9 x 100   ==  9999   (10.000 si le añadimos el cero).

Es fácil verificar que un número decimal de n dígitos puede representar como máximo una cantidad igual a 10n (en el caso del ejemplo, para 4 dígitos, 104 = 10000).

El mismo concepto (la misma cantidad) puede ser representada utilizando distintos sistemas de numeración, por ejemplo: MDCCXCVIII en números romanos (por cierto, un sistema muy poco adecuado para las matemáticas).

§6.2 Sistema binario

El sistema binario puede representar igualmente cualquier cantidad basándose en cifras que solo pueden tener dos valores, 0 y 1 ().  El sistema es exactamente análogo al decimal, con la diferencia de las potencias; de 2 que es la nueva base (en vez de 10 como en aquel caso). Por tanto, la cantidad binaria  11100000110 se lee:

1x210 + 1x29 + 1x28 + 0x27 + 0x26 + 0x25 + 0x24 + 0x23 + 1x22 + 1x21 + 0x20

Si el lector quiere "sacar la cuenta" verá que conduce igualmente a "mil setecientos noventa y ocho".

Una magnitud que solo puede tener dos valores se denomina bit. (abreviatura de "Binary digit", número binario). Es la menor cantidad de información que puede concebirse, y su abreviatura es b.  Por ejemplo, 10 Kb son 10.000 bits. Resulta así, que un interruptor que puede estar encendido o apagado es (puede ser) un almacenamiento de 1 bit de información; basta con hacer corresponder "encendido" con uno de los valores y "apagado" con el otro.

El asunto es que estas variables "binarias" (que solo pueden adoptar dos valores distintos), son mucho mas adecuadas para ser representadas mediante dispositivos eléctricos, magnéticos y ópticos, que las "decimales", por lo que es este el "formato" elegido para la representación y almacenamiento de cantidades numéricas en los ordenadores electrónicos digitales. La capacidad de representación de este sistema es sin embargo menor que en el decimal, así, una cantidad binaria de 4 dígitos puede representar como máximo:

1 x 23 + 1 x 22 + 1 x 21 + 1 x 20  == 15  (16 si añadimos el cero)

En el caso de la numeración binaria, también es fácil verificar que un número de n dígitos puede representar como máximo una cantidad igual a 2n . En el caso del ejemplo, para 4 dígitos, 24 = 16).

En la tabla adjunta se expresan las cantidades que se obtienen con la unidad seguida de cierto número n de ceros en los sistemas decimal y binario, lo que representa las potencias n de la base de numeración. Es decir: 10n o 2n.

Base 10

Número decimal

Base 2

Número binario

Equivalente decimal

100

1  

20

1  

1  

101

10  

21

10  

2  

102

100  

22

100  

4  

103

1000  

23

1000  

8  

104

10000  

24

10000  

16  

105

100000  

25

100000  

32  

106

1000000  

26

1000000  

64  

107

10000000  

27

10000000  

128  

108

100000000  

28

100000000  

256  

109

1000000000  

29

1000000000  

512  

1010

10000000000  

210

10000000000  

1024  


§6.3 Otros sistemas de representación numérica

Además del decimal y el binario (este último es el sistema "natural" del ordenador), en la literatura informática y en los fuentes de los programas se utilizan otras formas de numeración (sobre todo para representar valores constantes). Son los sistemas octal ( 2.2.4b); hexadecimal ( 2.2.4b) y BCD H0.1w1).

§7 Almacenamiento interno

Tradicionalmente el almacenamiento interno de los ordenadores se realiza en grupos de 8 (o múltiplos de 8) cifras binarias (bits), estos conjuntos (octetos) son la menor cantidad de información que trata el ordenador con entidad propia, reciben el nombre de bytes, y suele abreviarse con B. Por ejemplo, 16 Kb y 16 KB. se refieren a 16000 bits y 128.000 bits respectivamente.

Nota: Hemos señalado que bit es la abreviatura de Binary Digit, mientras que el nombre Byte fue acuñado en la década de los 50 por Werner Bushholz de la IBM [4]; la palabra proviene de una mutación de "bit", hecha de forma que no hubiese confusión al pronunciarlas (bit y byte suenan muy distintas en inglés).

En ocasiones, además de los octetos, se utilizan agrupaciones de 4 bits, reciben el nombre de nibble.  Así que 2 nibbles = 1 Byte.

Podemos usar un símil para entenderlo: aunque nuestro alfabeto tiene 26 caracteres, no solemos utilizarlos aislados. Para que tengan significado se utilizan en grupos (palabras), los ordenadores utilizan también palabras, solo que estas son siempre de la misma longitud (8, 16, 32 o 64 bits según el modelo de procesador).

Según lo anterior, un octeto (una "palabra" de 8 bits) 1 Byte, puede contener un número de hasta  28 = 256, lo que deriva en que si por ejemplo, reservamos una palabra de 8 bits para "describir" (contener) una variable, sabemos de antemano que dicha variable no va a poder adoptar nunca mas de 256 estados distintos. Esto, unido al hecho de que la forma de representación interna utiliza el sistema binario y los elementos y circuitos físicos son igualmente binarios (pueden adoptar solo dos estados), hacen que las potencias de dos: 8, 16, 32, 64 etc. son "números mágicos" en el mundo de las computadoras.

  Inicio.


[1] George Boole (1815-1864).  Matemático inglés cuyos trabajos teóricos sobre conjuntos de números binarios (que solo pueden adoptar dos valores), ayudó a establecer las bases de la moderna lógica simbólica. Su álgebra de la lógica binaria es también denominada álgebra Booleana.

[2] Nos referimos a las lenguas o lenguajes "Naturales" en contraposición a los "Artificiales" utilizados en informática. Los primeros han sido inventados espontáneamente por el hombre (a excepción del Esperanto), y son el resultado de mutaciones que se pierden en la noche de los tiempos. Los segundos han sido y están siendo inventados por los informáticos para comunicarse con los ordenadores (computadoras).

[3] Ya se está experimentando con olores; creo que incluso existe alguna patente al respecto.

[4] Por supuesto, byte puede escribirse con mayúscula y minúscula, pero es costumbre informática utilizar la mayúscula "Byte", mientras que bit, se suele escribir siempre con minúscula.

[5] Ahora que el asunto parece estar de moda, digamos que no solo debemos a la cultura Islámica las cifras numéricas, incluso muchos textos clásicos han llegado hasta nosotros a través del Islám.