Representación de datos

Te has preguntado alguna vez ¿por qué las computadoras usan el sistema binario?, ¿por qué es tan importante el bit para las máquinas?, ¿por qué usan este sistema en particular y no otro? En este artículo responderemos a esta y otras interrogantes.

Al finalizar te invitamos a visites los siguientes artículos relacionados.

El sistema binario es un sistema de numeración posicional. Un sistema de numeración es básicamente un conjunto de reglas y símbolos que permiten generar números. Se le dice que es posicional por que el valor de la cifra cambia, dependiendo de la posición que ocupa dentro del número. Un ejemplo de sistema de numeración posicional es el sistema decimal en el cual los números se representan mediante 10 símbolos. Estos 10 símbolos corresponden a los dígitos 0,1,2,3,4,5,6,7,8,9 por lo que se dice que el sistema decimal está en base 10. Por ejemplo, en el número 936 en base 10, el 6 corresponde a las unidades, el 3 a las decenas (representa en realidad el valor de 30) y el 9 a las centenas (representa en realidad el valor de 900).

El sistema binario es un sistema de numeración posicional en el cual la base es 2. Esto quiere decir que solamente posee dos símbolos posibles para generar los números. Estos símbolos son el 0 y el 1. A través de estos dos dígitos se pueden representar todos los números de forma similar a cualquier otro sistema de numeración. A los dígitos en el sistema binario se les conoce como bit, que proviene del acrónimo en ingles binary digit que literalmente se traduce como dígito binario.
 
Con 2 bits o dos dígitos binarios, se puede obtener hasta 4 posibles combinaciones de números. 
número en base 2número en base 10
000
011
102
113

 

Con 3 bits o tres dígitos binarios, se puede obtener hasta 8 posibles combinaciones de números. 

número en base 2número en base 10
0000
0011
0102
0113
1004
1015
1106
1117

Y así, mientras más bits tengamos, más números se podrán representar. En general con n bits, se puede representar hasta 2^n números. A través de los bits se pueden representar números naturales, enteros, reales, caracteres, cadenas de caracteres, imágenes, videos, sonidos y en general cualquier dato que requiramos. El bit es, pues, la unidad básica de información para la computación pues a través de los bits podemos representar variables y estructuras de datos que permiten realizar cálculos y resolver problemas.

Pero, ¿por qué las computadoras usan bits?

Muy bien, ya sabemos qué es el sistema binario, pero, ¿por qué las computadores usan bits?, ¿por qué no usan el sistema decimal, por ejemplo? Para responder a estas interrogantes, tenemos que hacer una breve revisión histórica sobre algunos hitos importantes en la lógica y la electrónica.

El Álgebra de Boole

En 1854, el matemático británico George Boole, publicó el libro An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities en donde desarrolla una forma de cálculo mediante la cual, razonamientos lógicos pueden expresarse en términos matemáticos. Se funda así las bases para la lógica algebraica llamada también lógica simbólica y de esta manera se desarrolla lo que se conoce hoy como el Algebra de Boole.

El álgebra booleana se basa en proposiciones que se caracterizan por tener un valor de verdadero o falso (conocidas actualmente como proposiciones lógicas que pueden tener el valor de 1 y 0) y tres operaciones: la negación, la conjunción y la disyunción.

pq\neg pp \wedge qp \vee q
VVFVV
VFFFV
FVVFV
FFVFF

Si te interesa profundizar más sobre lógica, te recomendamos el libro Logic: A Complete Introduction  de Siu-Fan Lee.

Los Circuitos de Relé

Otro de los personajes importantes en la historia de la computación es Claude Shannon. Shannon fue matemático, ingeniero eléctrico, criptógrafo y además es reconocido como el padre de la Teoría de Información. En 1937, Claude Shannon, defendió su maestría en el MIT con el trabajo titulado A Symbolic Analysis of Relay and Switching Circuits.

Para entender el aporte de Shannon, es necesario entender qué es un relé. Pues, un relé no es más que un interruptor magnético. A través de este interruptor se puede abrir o cerrar un circuito eléctrico. El funcionamiento es similar a un interruptor mecánico, como el que usamos para prender la luz en nuestras casas.

Shannon demostró en su tesis de maestría que, a través de los circuitos de relé que proponía, era posible resolver problemas del algebra booleana. La utilización de las propiedades binarias de los interruptores eléctricos para ejecutar funciones lógicas es el concepto básico que subyace a la electrónica digital.

ejemplo de un relé como un sistema abierto

En la imagen de arriba, se puede apreciar un relé configurado para que funcione como un circuito abierto, en esta configuración, se puede decir que la salida produce un 0. En la imagen de abajo, por el contrario, tenemos un relé configurado para que funcione como un circuito cerrado, en esta configuración, se produce como salida un 1. Por este motivo se le dice que es un interruptor electromagnético.

Combinando relés, se pueden implementar las operaciones lógicas del álgebra de Boole. La compuerta AND, por ejemplo, es la implementación de la operación lógica conjunción a nivel de hardware. Esto es importante porque permite la automatización de las operaciones matemáticas. Si te interesa ver cómo los relés se pueden usar para diseñar una compuerta AND, te recomendamos que veas el video «Compuerta AND con Relé»  disponible en el siguiente enlace.

ejemplo de un relé como un sistema cerrado

El Z3

El 12 de mayo de 1941, Konrad Zuse, un ingeniero alemán, presenta el Z3, considerada por algunos como la primera computadora moderna, es decir una máquina programable y completamente automática. Usaba relés (los interruptores magnéticos con los que había trabajado Shannon), aproximadamente 2600 de ellos, pesaba aproximadamente 1 tonelada y tenía la forma de un gran armario. Operaba en binario representando números reales de punto flotante con 22 bits.  Se demoraba 0.8 segundos en sumar y 3 segundos en multiplicar.

Dada la poca memoria que tenía, solamente 64 palabras de 22 bits, el Z3 no almacenaba los programas en la memoria, sino en una cinta externa, por este motivo no se le considera como una máquina de propósito general.

Lamentablemente el Z3 fue destruido durante uno de los bombardeos a Berlín en el año 1943. Pero, debido a su importancia histórica fue reconstruida en el año 1961, para el Museo Alemán (Deutsches Museum) en Múnich. Abajo te dejamos un enlace a un video del Museo Alemán en donde se presenta el Z3 reconstruido y funcionando.

El ENIAC

En febrero de 1946, se presentó el «Computador e Integrador Numérico Electrónico» más conocido como ENIAC por las siglas en inglés Electronic Numerical Integrator And Computer. Fue construido por los estadounidenses John Presper Eckert, y John William Mauchly.

Ocupaba una superficie de 167 m^2, pesaba 27 toneladas y usaba tubos de vacío. El tubo de vacío, también denominados válvula de vacío, bulbo, válvula termoiónica, es un componente electrónico que se puede usar para amplificar o conmutar una señal. Los tubos de vacío tienen las mismas funcionalidades que los relés pero usan menos electricidad y además son mucho más rápidos.

El ENIAC contenía aproximadamente 19 mil tubos de vacío y usaba también el sistema binario realizando en un segundo unas 5 mil sumas y 300 multiplicaciones. Era, pues, mucho más rápido que el Z3. Se le considera como la primera computadora eléctrica de propósito general, y podía ser programado para ejecutar una secuencia compleja de operaciones incluyendo en éstas: estructuras algorítmicas selectivas, estructuras algorítmicas iterativas y sub-rutinas. Comienza así la primera generación de computadores.
 
En el video presentado abajo, podrás apreciar las características de este computador.

¿Por qué las computadoras usan bits?

Ahora que hemos entendido qué es el sistema binario y hemos realizado un breve recorrido histórico por los principales hitos en relación con la lógica, electrónica y la computación, intentaremos responder a la interrogante.

Dependiendo del dispositivo que se use para almacenar los datos, es decir el hardware, se pueden identificar dos estados bien definidos:

  • Si se utilizan cargas eléctricas, como los relés y tubos de vacío, se pueden tener dos estados claramente definidos como: el dispositivo con bajo voltaje y dispositivo con alto voltaje.
  • Si se utilizan cargas magnéticas, como en el caso de los discos duros, se pueden tener dos estados claramente definidos como: carga magnética negativa y carga magnética positiva.
  • Si se utiliza dispositivos ópticos, como en el caso de los CD, DVD, Blue Ray, se pueden tener dos estados claramente definidos como: refleja luz y no refleja luz.

 

Debido a estos dos estados, es relativamente simple representarlos en el hardware. A pesar que en el sistema binario se requiere más dígitos para representar los números que en el sistema decimal, su aritmética es muy simple de ejecutar a través de la electrónica digital, trabajo que fue iniciado con Claude Shannon.

Si quisiéramos representar datos usando el sistema decimal, se debería poder representar cada dígito, es decir 10 posibles estados. Si se utilizan cargas eléctricas, se requerirán de 10 diferentes rangos de voltaje, lo cual no es fácil de construir.

Los bits y la computación cuántica

Entonces, ¿los computadores están condenados a trabajar toda la vida con bits? No necesariamente. En años recientes se ha venido estudiando el paradigma de computación cuántica en el cual la unidad básica de información no es el bit sino el qubit (quantum bit). En un qubit, a diferencia de un bit, en un solo dígito se puede representar el 0 y el 1, al mismo tiempo a través de la superposición cuántica. 

Por si te ha interesado la este tema, abajo te dejamos el video del canal Derivando que presenta una interesante introducción a la computación cuántica.

¿En qué unidades se mide el bit?

En el Sistema Internacional de Unidades (SI), que es el sistema de unidades que se usan en casi todos los países del mundo, se definen los múltiplos de las unidades como potencias de 10. De esta manera  k=10^3 (kilo), M=10^6 (mega),  G=10^9 (giga), T=10^{12} (tera) y así sucesivamente. El SI recomienda que se usen los símbolos definidos en el sistema (k, M, G, T) para referirse a las potencias de 10, pero en computación usualmente se usa una definición diferente  basada en potencias de 2, de la siguiente manera: 

prefijosímbolofactor
kilobytekB2^{10}
megabyteMB2^{20}
gigabyteGB2^{30}
terabyteTB2^{40}

Lo anterior es incorrecto pues no sigue las recomendaciones del SI, según el estándar internacional  ISO/IEC 80000-13, «Quantities and units — Part 13: Information science and technology», los múltiplos de las unidades deben escribirse como:

prefijosímbolofactor
kibibytekiB2^{10}
mebibyteMiB2^{20}
gibibyteGiB2^{30}
tebibyteTiB2^{40}

Pero, ¿qué es un byte?

Según el estándar 1541-2002 de la IEEE, el byte es un grupo adyacente de dígitos binarios que operan como una unidad, usualmente de 8 bits. Al grupo de 8 dígitos binarios se le conoce como octeto. Al dígito que está más a la derecha se le suele llamar de dígito menos significativo mientras el que  está más a la izquierda se le suele llamar de dígito más significativo.

ejemplo de byte con bit más significativo y bit menos significativo

Se conoce como nibble al conjunto de 4 dígitos binarios o sea 4 bits. También se le conoce como semi-octeto, cuarto o semi-byte. Interesa mucho para la computación pues con cada nibble se puede representar un dígito en hexadecimal y hace muy sencillo el cambio de base de 2 a 16.

Cuando se tiene una secuencia de 8 bits, los 4 bits que están más a la derecha se conocen como el nibble bajo, mientras que los 4 bits que están más a la izquierda se le conoce como nibble alto.

ejemplo de un nibble

Conclusión

En este artículo hemos discutido el porqué las computadoras usan bits. La razón de esto se debe a la facilidad que se tiene para representar en el hardware los dos estados que requiere un bit. En la historia de la computación se comenzó a representar datos usando relés, luego se migró a tubos de vacío, posteriormente se desarrolló el transistor y finalmente se llegó a los circuitos integrados. Haciendo que se incremente la velocidad de procesamiento y disminuyan los costos de producción. En la actualidad se están construyendo computadoras cuánticas que utilizan los qubits, lo cual es una evolución enorme  para la computación.

Si te ha gustado este artículo, te invitamos a que leas los artículos relacionados con la representación de números enteros en el computador.


Si te interesa profundizar más sobre los temás tratados en este artículo, te recomendamos los siguientes libros: