El sistema binario

Artículo recuperado.
Una aproximación al concepto del código binario,
el código ASCII y el código hexadecimal. 

Todo sistema de comunicación necesita un mensaje, un emisor del mismo, un receptor, un canal para transmitir la información y un código que tanto el emisor como el receptor sean capaces de entender. Así, por ejemplo, cuando dos seres humanos hablan entre sí (emisor y receptor) utilizan un idioma que ambos entiendan (código) y transmiten el mensaje mediante el sonido de la voz y su propagación por el aire (canal).

El avance de las comunicaciones ha ido dando lugar a modificaciones de los canales usados para transmitir la información, así como los códigos empleados. En la era digital, el desarrollo de sistemas que usan la electricidad y las ondas electromagnéticas como canales para emitir información ha supuesto una vía de desarrollo de códigos que se adapten a los mismos.

La transmisión de información mediante estos sistemas puede responder a formas alámbricas (por un cable e impulsos eléctricos) o inalámbricas (mediante la propagación de ondas electromagnéticas).

Los códigos empleados para ambos canales responden a dos formas:

  • Transmisión analógica: los valores que se transmiten son continuos, es decir, se mide la intensidad de la señal que llega, y esta toma una infinidad de valores entre unos límites.
  • Transmisión digital: Los valores que se transmiten son discretos y adoptan un número concreto de valores. El caso mas habitual es utilizar sólo dos posibilidades, que responden a recibir señal (primera posibilidad) o no recibirla (segunda posibilidad).

En ambos casos, de la señal recibida se toman valores regularmente (es decir, se divide la misma en “trocitos” entre los cuales pasa un tiempo determinado y se mide el valor de la misma en cada “trocito”). En el caso de una señal analógica cada vez que tomemos un dato la señal tendrá una intensidad y ésta tendrá un significado. En el caso de una señal digital al tomar un dato obtendremos una señal o la ausencia de la misma.

Pero, ¿Cómo se envía la información en un ordenador?. Partiendo de la base de que los ordenadores funcionan con electricidad y envían la información que procesan mediante impulsos eléctricos, el primer paso es entender porqué es mejor una señal digital.

Una señal analógica necesita codificar la información (hablando de impulsos eléctricos) con diferentes voltajes, estableciendo un código que transforme la información en diferentes voltajes. El problema sería que si la señal eléctrica sufre interferencias o se atenúa1 el mensaje cambiaría completamente y, con toda seguridad, pasaría a no tener sentido. Estableciendo una transmisión digital, la intensidad de la señal carece de sentido, pues sólo es importante establecer cuándo se recibe señal y cuando no se recibe señal.

Por ello, se desarrolló un sistema, llamado código binario, que responde a los dos estados anteriormente mencionados (recibir señal o no recibirla) y establece para ellos dos valores:

  • Recibo señal – 1 –
  • No recibo señal – 0 –

El ordenador va tomando valores de forma periódica, en pequeñísimos tramos de tiempo, y va marcando si recibe señal (1) o si no la recibe (0)De ello surge una sucesión de 1 y 0. Ya tenemos la base para desarrollar un código, que tiene que utilizar esos dos números y combinarlos para que respondan a nuestras necesidades. De esta forma, podríamos establecer que la “A” es un 1010, que la “B” es un 1110, que la “C” sea un 0110, etc (o cualquier combinación de 1 y 0).

A la unidad mas pequeña que se puede representar en binario (es decir, a cada 1 o 0) se le denomina bit.

Cada uno podríamos establecer nuestro código binario y marcar nuestras combinaciones de 1 y 0, pero no podríamos entendernos entre nosotros al estar los mensajes en diferentes “idiomas” binarios. Por ello, es importante que todos los ordenadores trabajen bajo un mismo código.

El código binario que emplean de forma general los ordenadores se denomina código ASCII (en inglés siglas de “American Standard Code for Information Interchange”) y establece un número concreto de bits para cada uno de los símbolos que utilizamos.

Pero, ¿qué número de bits es necesario?. Si utilizamos un sólo bit las posibilidades son dos, el 1 y el 0. Si utilizamos dos bits las combinaciones aumentan, como se muestra en la siguiente tabla:

La cantidad necesaria, para poder abarcar todos nuestros caracteres, sería de 8 bits, que nos da 256 combinaciones posibles, las cuales nos permiten dar cabida a los caracteres de nuestro alfabeto.

El código ASCII, para no incurrir en errores, establece una combinación concreta de 8 bits a cada caracter. A cada grupo de 8 bits que representan un caracter se le denomina byte u octeto.

A continuación se establecen algunos ejemplos de caracteres y su equivalencia en código ASCII:

Para codificar un texto en código ASCII se escribirá el byte correspondiente a cada carácter. A modo de ejemplo se representa a continuación una codificación de un texto a código ASCII:

Como verás, para una frase de tres palabras son necesarios 19 bytes, es decir, 152 bits (1 y 0). La cantidad de bytes para cualquier texto o información es grande, lo cual hace incómodo trabajar con números tan altos y hace falta buscar múltiplos para unidades muy grandes (de la misma forma que hacemos con otras unidades de medida, por ejemplo, podemos expresar una longitud en metros, decímetros, kilómetros, etc).

A partir del byte las unidades de capacidad de información, en el sistema internacional, se miden en múltiplos de 1000, siendo un kilobyte (Kb) 1000 bytes, tal y como se refleja en la tabla siguiente:

Como veréis en la tabla, las siglas de Kilobyte son KB, ya que la palabra byte se representa con una B y el bit con una b. Frecuentemente esta nomenclatura es usada de forma errónea y se representa Kilobyte como Kb, pero no es correcto.

Es usual, en el mundo informático, usar múltiplos de 1024 en lugar de múltiplos de 1000 a la hora de representar la cantidad de bits. Esto se debe a que el sistema binario se basa en dos estados, por lo que al principio las capacidades iban creciendo según potencias de base 2, y se estandarizó el uso de 1024 como múltiplo para ir estableciendo las equivalencias, ya que es la potencia de base 2 más cercana a 1000 (210 = 1024). En muchas ocasiones se suele leer y escuchar que 1 Kilobyte son 1024 bytes, pero no es correcto.

Para las equivalencias basadas en potencias de base 2 (múltiplos de 1024) se usa la palabra Kibibyte, tal como se muestra en la siguiente tabla:

Como el código ASCII representa cada byte con grupos de 8 bits, existe un método algo mas simplificado para representar la información, denominado código HEXADECIMAL. Este código sólo sirve para representar información a nivel usuario. El ordenador no trabaja con el mismo, pero el programador si ve facilitado su trabajo.

El código hexadecimal convierte cada grupo de 4 bits en un solo caracter. De esta forma, un byte (ocho 1 y 0) se representará por 2 caracteres. A cada grupo de 4 bits se le denomina nibble, de forma que 2 nibbles forman un byte. Si contamos todas las combinaciones con 4 bits veremos que hay 16 posibilidades. El código hexadecimal establece un solo caracter a cada uno de ellos, empezando por la combinación mas baja posible (0000) a la cual le otorga el 0, siguiendo con los números en orden hasta el 9 y finalizando con letras en orden alfabético, como muestra la siguiente tabla:

Es importante entender que al convertir cada cuatro 1 y 0 en un solo carácter la cantidad de texto se divide entre cuatro y al programador le es mas sencillo escribir y leer la información, aunque el ordenador sigue trabajando con la codificación binaria. De esta forma, por ejemplo, el 10010010 en código hexadecimal se corresponde con el 92, y el 11000110 con el C6.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información

ACEPTAR
Aviso de cookies
error: