En la siguiente sesión aprenderás el como a través de la historia, un famoso matemático propuso que podía existir una forma para representar todos los números del alfabeto solo por series de unos y ceros, esto tuvo gran influencia en la actualidad, así que citando el blog de Sebastián Bortnik llamado UnMundoBinario.com vamos a ver como se representan las letras en binario.
La solución al problema de la representación de letras (y todo tipo de caracteres no numéricos) es la definición de un (o más de uno) estándar en donde a cada caracter se le asigna un número (en decimal digamos) correspondiente. De esta forma matemáticamente no hay un problema; ya sabemos convertir un número decimal en binario. Veamos un ejemplo simple y tonto que a mí me encantan. Yo tengo los números decimales 0, 1, 2 y 3. Puedo armar la tabla con los correspondientes números en binario:
0 – 00
1 – 01
2 – 10
3 – 11
Puedo ahora, agregar a cada valor un caracter que representaré con ese valor, como por ejemplo:
0 – 00 – a
1 – 01 – b
2 – 10 – c
3 – 11 – e
De esta forma, yo puedo representar palabras simples “uniendo” el valor de cada caracter y mostrándolo en binario, por ejemplo:
bebe – 1313 – 01110111
beba – 1310 – 01110100
beca – 1320 – 01111000
Creo que la explicación hasta aquí es suficiente para entender la idea. En la vida real, existen diferentes tablas de conversión de caracter a binario pero la más popular (y antigua más que nada) es la llamada ASCII (acrónimo inglés de American Standard Code for InformationInterchange — Código Estadounidense Estándar para el Intercambio de Información). Este es el estándar más utilizado para mantener la relación carácter-número. Muchos de nosotros la hemos utilizado (posiblemente sin saberlo) cuando en los teclados antiguos, utilizábamos la tecla Alt para generar algunos caracteres especiales. Por ejemplo, utilizábamos el Alt+64 para hacer la arroba (@). Es decir, la arroba se corresponde con el valor 64 en el código ASCII. En un principio, el ASCII estaba representado por 7 bits (un valor binario de 7 dígitos) por lo que se pueden representar 128 valores diferentes (el 1111111 en binario es dicho valor en decimal). Los primeros 32 valores se utilizan para caracteres de control como el salto de línea (enter) o el escape. Los siguientes 96 valores representan los caracteres imprimibles, ellos son los siguientes:
! ” # $ % & ‘ ( ) * +, -. / 0 1 2 3 4 5 6 7 8 9 :; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Años más tarde de la creación del código ASCII, se creó el ASCII extendido. Este agrega un bit más quedando cada valor de 8 bits (un uno o un cero más) y pudiendo formar ahora 256 caracteres. De esta forma, los primeros 128 valores coinciden con la tabla ASCII clásica y se agregan nuevos caracteres hasta el valor 240. Entre estos nuevos caracteres, se encuentran las vocales con acentos, las eñes (ñ – Ñ) y la arroba, entre otros. La tabla ASCII extendida completa puede ser consultada en el sitio www.asciitable.com. A forma de resumen, podemos observar que la creación de un estándar fue lo que soluciona el problema de la representación de letras en binario ya que matemática seguimos haciendo lo mismo que al pasar números de decimal a binario. Espero poder de esta forma “cerrar” las ideas básicas del porqué las computadoras utilizan unos y ceros y cómo lo hacen con los símbolos simples (números y palabras). Antes de terminar, puede quedar una duda más: suponiendo que tengo un valor cualquiera, digamos el 100 (en decimal), es decir el 1100100 en binario. ¿Cómo sabe la Pc si se está representando el número 100 o el caracter d (ver tabla ascii)? Para explicarlo de forma simple; digamos que lo que importa es el contexto. Cuando en la Pc hay algún tipo de acción, el ordenador previamente sabe en qué formato se le está pasando la información (¿estoy leyendo un número o un código ascii?). Es decir, supongamos que nos comunicamos entre nosotros y yo les digo: “les paso un número binario: 1100010011010010110111001100001011100100110100101101111″. Obviamente que ninguno de nosotros se va a poner a convertir este valor a decimal pero para que se hagan una idea estamos hablando de un valor de más de 1 billón en sistema decimal. Pero si yo les dijera en cambio que les paso el mismo valor pero en código ascii se podría leer tranquilamente el valor antes mencionado. En un principio, simplemente se lo debe dividir en grupos de a 8 para que quede algo así:
01100010 01101001 01101110 01100001 01110010 01101001 01101111
Luego puedo traducir cada valor en decimal ya que estamos hablando de valores más pequeños:
01100010 01101001 01101110 01100001 01110010 01101001 01101111
98 105 110 97 114 105 111
Y finalmente podemos utilizar la tabla ASCII para convertir a caracteres y obtener la palabra:
01100010 01101001 01101110 01100001 01110010 01101001 01101111
98 105 110 97 114 105 111
b i n a r i o
Siempre en la computadora es importante conocer el contexto para poder comprender qué tipo de datos se están transmitiendo. Es decir, la computadora transmite “bloques” de información que tienen un cartel pegado que indica qué tipo de “bloque” se está transmitiendo.
Para quienes quieran desafiar su entendimiento (espero que se haya entendido), les dejo esta imagen que encontré en Código Geek. A ver si pueden leer el texto (utilizando la tabla ASCII) sin recurrir a la web de origen donde está la repuesta.
Fuente
Bortnik, S. (27 de diciembre de 2007). ElMundoBinario.com. Recuperado el 11 de enero de 2013, de http://unmundobinario.com/2007/12/27/%C2%BFcomo-escribo-binario-en-binario/
0 Comentarios