viernes, 11 de enero de 2013

¿Qué es un código binario? 
¿Qué es un sistema binario? 
¿Cómo se interpreta este sistema y se
 escribe un código binario?
(Os diré como se interpreta y escribe de una manera para que os resulte más facilito comprender.., os va a gustar porque os resultará agradable averiguar que no es difícil. Os aseguro que la teoria, es más difícil de entender que la práctica.)


 ¿Qué es un código binario?
El código binario es el sistema de representación de textos, o procesadores de instrucciones de computadora utilizando el sistema binario (sistema numérico de dos dígitos, o bit: el "0" (cerrado) y el "1" (abierto)). En informática y telecomunicaciones, el código binario se utiliza con variados métodos de codificación de datos, tales como cadenas de caracteres, o cadenas de bits. Estos métodos pueden ser de ancho fijo o ancho variable. Por ejemplo en el caso de un CD, las señales que reflejarán el "láser" que rebotará en el CD y será recepcionado por un sensor de distinta forma indicando así, si es un cero o un uno.

En un código binario de ancho fijo, cada letra, dígito, u otros símbolos, están representados por una cadena de bits de la misma longitud, como un número binario que, por lo general, aparece en las tablas en notación octal, decimal o hexadecimal.

Según Anton Glaser, en su History of Binary and other Nondecimal Numeration, comenta que los primeros códigos binarios se utilizaron en el año 1932: C.E. Wynn-Williams ("Scale of Two"), posteriormente en 1938: Atanasoff-Berry Computer, y en 1939: Stibitz ("excess three") el código en Complex Computer.

Es frecuente también ver la palabra bit referida bien a la ausencia de señal, expresada con el dígito "0", o bien referida a la existencia de la misma, expresada con el dígito "1". El byte es un grupo de 8 bits, es decir en él tenemos 256 posibles estados binarios.


Características del código binario
Ponderación
La mayoría de los sistemas de numeración actuales son ponderados es decir, cada posición de una secuencia de dígitos tiene asociado un peso. El sistema binario es, de hecho, un sistema de numeración posicional ponderado. Sin embargo, algunos códigos binarios, como el código Gray no son ponderados es decir, no tienen un peso asociado a cada posición. Otros, como el mismo código binario natural o el BCD natural sí lo son. 


Distancia
La distancia es una característica sólo aplicable a las combinaciones binarias. La distancia entre dos combinaciones es el número de bits que cambian de una a otra. Por ejemplo: si se tienen las combinaciones de cuatro bits 0010 y 0111 correspondientes al 2 y al 7 en binario natural, se dirá que la distancia entre ellas es igual a dos ya que de una a otra cambian dos bits.
Además, con el concepto de distancia se puede definir la distancia mínima de un código. Ésta no es más que la distancia menor que haya entre dos de las combinaciones de ese código.
La distancia es una característica que, además, sólo aplica a las combinaciones binarias. En resumen, la distancia entre dos combinaciones es el número de bits que cambian de una a otra.


Continuidad
La continuidad es una característica de los códigos binarios que cumplen que todas las posibles combinaciones del código son adyacentes, es decir, que de cualquier combinación del código a la siguiente cambia un sólo bit. En este caso se dice que el código es continuo. Cuando la última combinación del código es, a su vez, adyacente a la primera, se trata de un código cíclico.


Autocomplementariedad

Se dice que un código binario es autocomplementario cuando el complemento a 9 del equivalente decimal de cualquier combinación del código puede hallarse invirtiendo los valores de cada uno de los bits (operación lógica unaria de negación) y el resultado sigue siendo una combinación válida en ese código. Esta característica se observa en algunos códigos BCD, como el código Aiken o el código BCD exceso 3. Los códigos autocomplementarios facilitan las operaciones aritméticas. 



¿Qué es un sistema binario?
El sistema binario, en ciencias e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1). Es el que se utiliza en las computadoras, debido a que trabajan internamente con dos niveles de voltaje, por lo cual su sistema de numeración natural es el sistema binario (encendido 1, apagado 0).

Historia del sistema binario
Página del artículo Explication de l'Arithmétique Binaire de Leibniz.

El antiguo matemático indio Pingala presentó la primera descripción que se conoce de un sistema de numeración binario en el siglo tercero antes de nuestra era, lo cual coincidió con su descubrimiento del concepto del número cero.

Una serie completa de 8 trigramas y 64 hexagramas (análogos a 3 bit) y números binarios de 6 bit eran conocidos en la antigua China en el texto clásico del I Ching. Series similares de combinaciones binarias también han sido utilizadas en sistemas de adivinación tradicionales africanos, como el Ifá, así como en la geomancia medieval occidental.


Un arreglo binario ordenado de los hexagramas del I Ching, representando la secuencia decimal de 0 a 63, y un método para generar el mismo fue desarrollado por el erudito y filósofo Chino Shao Yong en el siglo XI.

En 1605 Francis Bacon habló de un sistema por el cual las letras del alfabeto podrían reducirse a secuencias de dígitos binarios, las cuales podrían ser codificadas como variaciones apenas visibles en la fuente de cualquier texto arbitrario.

El sistema binario moderno fue documentado en su totalidad por Leibniz, en el siglo XVII, en su artículo "Explication de l'Arithmétique Binaire". En él se mencionan los símbolos binarios usados por matemáticos chinos. Leibniz utilizó el 0 y el 1, al igual que el sistema de numeración binario actual.

En 1854, el matemático británico George Boole publicó un artículo que marcó un antes y un después, detallando un sistema de lógica que terminaría denominándose Álgebra de Boole. Dicho sistema desempeñaría un papel fundamental en el desarrollo del sistema binario actual, particularmente en el desarrollo de circuitos electrónicos.


Aplicaciones
En 1937, Claude Shannon realizó su tesis doctoral en el MIT, en la cual implementaba el Álgebra de Boole y aritmética binaria utilizando relés y conmutadores por primera vez en la historia. Titulada Un Análisis Simbólico de Circuitos Conmutadores y Relés, la tesis de Shannon básicamente fundó el diseño práctico de circuitos digitales.

En noviembre de 1937, George Stibitz, trabajando por aquel entonces en los Laboratorios Bell, construyó una computadora basada en relés —a la cual apodó "Modelo K" (porque la construyó en una cocina, en inglés "kitchen")— que utilizaba la suma binaria para realizar los cálculos. Los Laboratorios Bell autorizaron un completo programa de investigación a finales de 1938, con Stibitz al mando.


El 8 de enero de 1940 terminaron el diseño de una "Calculadora de Números Complejos", la cual era capaz de realizar cálculos con números complejos. En una demostración en la conferencia de la Sociedad Americana de Matemáticas, el 11 de septiembre de 1940, Stibitz logró enviar comandos de manera remota a la Calculadora de Números Complejos a través de la línea telefónica mediante un teletipo. Fue la primera máquina computadora utilizada de manera remota a través de la línea de teléfono. Algunos participantes de la conferencia que presenciaron la demostración fueron John von Neumann, John Mauchly y Norbert Wiener, quien escribió acerca de dicho suceso en sus diferentes tipos de memorias en la cual alcanzó diferentes logros.


Representación
Un número binario puede ser representado por cualquier secuencia de bits (dígitos binarios), que suelen representar cualquier mecanismo capaz de usar dos estados mutuamente excluyentes. Las siguientes secuencias de símbolos podrían ser interpretadas como el mismo valor numérico binario: 


1 0 1 0 0 1 1 0 1 0
| - | - - | | - | -
x o x o o x x o x o
y n y n n y y n y n

El valor numérico representado en cada caso depende del valor asignado a cada símbolo. En una computadora, los valores numéricos pueden representar dos voltajes diferentes; también pueden indicar polaridades magnéticas sobre un disco magnético. Un "positivo", "sí", o "sobre el estado" no es necesariamente el equivalente al valor numérico de uno; esto depende de la nomenclatura usada.

De acuerdo con la representación más habitual, que es usando números árabes, los números binarios comúnmente son escritos usando los símbolos 0 y 1. Los números binarios se escriben a menudo con subíndices, prefijos o sufijos para indicar su base. Las notaciones siguientes son equivalentes:


  • 100101 binario (declaración explícita de formato)
  • 100101b (un sufijo que indica formato binario)
  • 100101B (un sufijo que indica formato binario)
  • bin 100101 (un prefijo que indica formato binario)
  • 1001012 (un subíndice que indica base 2 (binaria) notación)
  • %100101 (un prefijo que indica formato binario)
  • 0b100101 (un prefijo que indica formato binario, común en lenguajes de programación)

Conversión entre binario y decimal

Decimal a binario
Se divide el número del sistema decimal entre 2, cuyo resultado entero se vuelve a dividir entre 2, y así sucesivamente hasta que el dividendo sea menor que el divisor, 2. Es decir, cuando el número a dividir sea 1 finaliza la división.

A continuación se ordenan los restos empezando desde el último al primero, simplemente se colocan en orden inverso a como aparecen en la división, se les da la vuelta. Éste será el número binario que buscamos.

Ejemplo
Transformar el número decimal 131 en binario. El método es muy simple:
131 dividido entre 2 da 65 y el resto es igual a 1 
65 dividido entre 2 da 32 y el resto es igual a 1 
32 dividido entre 2 da 16 y el resto es igual a 0
16 dividido entre 2 da 8 y el resto es igual a 0
 8 dividido entre 2 da 4 y el resto es igual a 0
 4 dividido entre 2 da 2 y el resto es igual a 0
2 dividido entre 2 da 1 y el resto es igual a 0 
1 dividido entre 2 da 0 y el resto es igual a 1

-> Ordenamos los restos, del último al primero: 10000011


Binario a decimal
Para realizar la conversión de binario a decimal, realice lo siguiente:
Inicie por el lado derecho del número en binario, 

cada cifra multiplíquela por 2 elevado a la potencia consecutiva.

También se puede optar por utilizar los valores que presenta cada posición del número binario a ser transformado, comenzando de derecha a izquierda, y sumando los valores de las posiciones que tienen un 1. 

Ejemplo
El número binario 1010010 corresponde en decimal al 82. 

Se puede representar de la siguiente manera:

\overset{64}{\mathop{1}}\,\overset{32}{\mathop{0}}\,\overset{16}{\mathop{1}}\,\overset{8}{\mathop{0}}\,\overset{4}{\mathop{0}}\,\overset{2}{\mathop{1}}\,\overset{1}{\mathop{0}}\,_{2}
 
Entonces se suman los números 64, 16 y 2:

\overset{64}{\mathop{1}}\,\overset{32}{\mathop{0}}\,\overset{16}{\mathop{1}}\,\overset{8}{\mathop{0}}\,\overset{4}{\mathop{0}}\,\overset{2}{\mathop{1}}\,\overset{1}{\mathop{0}}\,_{2}=64+16+2=82

 Pongamos otro ejemplo para poder
 interpretarlos también a letras.
(Esta es la forma más fácil para explicarlo de manera 

como a mi me gusta.., todito chuli!!)

Una explicación sencilla de como aprender a interpretar el sistema binario, sea tanto para pasar a decimal o a letras (ASCII).
Simplemente deben tener al día las matematicas (algo siempre presente para programadores) las operaciones no son complicadas pero hay que hacerlas rápido para ir entendiendo bien un texto.


Antes que nada hay que aclarar que binario se lee de derecha a izquierda, es algo muy importante!

Primero pasemos un numero cualquiera a binario, tomemos por ejemplo el 33.
Y ahora vamos diviendolo por 2 y anotando el resultado y el sobrante. Tomando solamente numeros enteros, y hasta llegar a 1 que divido entre 2 es 0, con un sobrante de 1.


Ejemplo: 
 33 lo dividimos entre 2 =igual= 16  y no queda como sobrante 1. 

33/2 = 16 (1)
16/2 = 8 (0)
8/2 = 4 (0)
4/2 = 2 (0)
2/2 = 1 (0)
1/2 = 0 (1) 


Así pues nos quedaria como resultado: 100001
Binario = Sobrantes = 100001

Ahora hay que completar (SIEMPRE) con digitos, por eso agregamos dos veces el numero 0, (se lo añadimos por delante porque se necesita 8 dígitos y no 6.).

Como dije se lee de derecha a izquierda. Como es capicuo sin agregar los dos ceros no se puede apreciar muy bien pero después os pondré otro ejemplo que si lo vereis mejor.

Nuestro numero binario quedaria asi = 00100001

Ahora para pasar de la forma contraria, la forma mas fácil es tener en mente esta tablita (que es ir multiplicando por 2 a partir del número 1.):

128 – 64 – 32 – 16 – 8 – 4 – 2 – 1

Y simplemente ponen debajo el numero binario.

128     64     32    16     8    4     2     1 


   0        0      1       0      0     0     0     1

Cada numero binario corresponde a un numero de arriba.
Ahora simplemente, como si los binarios 1 tildaran (que sirven) y los 0, la destildaran (no sirven). Por tanto se suman los numeros de arriba de la tabla que estan tildados o corresponden a un 1.


En este ejemplo seria 32 más 1 que sería igual a 33. (Nuestro número)
32 + 1 = 33

Simple.., ¿no?

¿A que es todito chuli?... Jejeje.

Lo importante es tener en cuenta la tablita, con el tiempo lo hareis mucho más rápido y yo incluso diria que casi como si fuese algo normal, de esta manera, cuando lean códigos binarios lo van a traducir instantaneamente con la cabecita como si fuera un idioma más como el inglés, etc (A mi en particular me gusta mucho más el español, el ruso y el hebreo.., ¡aunque a to er mundo le gusta escucharme hablar el andalú, ou io, ni te imaginas lo bien que se me dá chico!.., pero el que más me gusta es el idioma del Amor que lo comprende todo el mundo y por supuesto el idioma cósmico y celestial.., la telepatía, el cual te sale traducidito automáticamente en el idioma que sea tuyo de origen y sin complicaciones de entendimiento.)

Bueno, pues ahora si quieren formar palabras se complica solo un poquito más, y para esto deben saber el codigo ASCII, que no se los voy a explicar, pero si les voy a dar una tablita en la cual pueden comprobar que las letras corresponden a un número, para más tarde ese número pasarlo a binario y a la inversa.


Os pondré una tablilla resumida en el ahora para poder realizar el siguiente ejemplo y a continuación, os la daré extendida para que la podais tener. (Absolutamente todo cuanto pongo en el blog podeis compartirlo y copiarlo porque es vuestro, si es que así lo deseais.., solo deseaba aclararlo!!)

Tabla ASCII

En la tabla están los números y las letras correspondientes, tomemos para este ejemplo las letras minisculas.

Si quieren recordar esta tablita facilmente, solo recuerden que empieza con el 97 y correspondiendole a cada letra comenzando obviamente por la a.

Por ende:
a 97
b 98
c 99
d 100
y asi sucesivamente….

Ahora simplemente vamos a pasar la palabra "hola" a binario.
h = 104
o = 111
l = 108
a = 97


Ya sabemos como hacerlo.., realizamos divisiones por 2 de cada número.

DECIMAL  —  BINARIO
104                    01101000
111                     01101111
108                    01101100
97                       01100001

Resultado = 01101000 01101111 01101100 01100001 (hola).

Metodo inverso para convertir código binario a texto. Pasan de binario al código ASCII. 


01101000    104       h
01101111       111       o
01101100    108        l
01100001    
97         a



Ahora os pondré un ejemplo con un mensaje realizado por los seres que a través de los círculos de cosecha nos envian. 
Este en particular me gusta mucho y entenderéis el porque es tan bonito para mí.

El siguiente círculo de cosecha fue realizado justo a finales del mes de Julio con la inauguración de los Juegos Olímpicos de Londres del 2012 y tiene un expectacular código binario realmente bonito para descifrar.



El mensaje del olimpismo siempre suele estar ligado al espíritu de la sana competición, los valores de la unidad y armonía entre los pueblos por encima de los intereses de los poderosos.


En este sentido, y ante la polémica de los dos objetos voladores no identificados que aparecieron el dia 27 de Julio sobre el estadio olímpico en los fuegos artificiales, el pasado 31 de Julio en el mítico emplazamiento de Windmill Hill se descubrió lo que parece ser una figura con un código binario basado en unos y ceros, el cual al transformarse en código ASCII representa exactamente una palabra escrita en inglés, el que podríamos denominar el idioma oficial del planeta tierra.


De este crop circle solo se dispone de una única fotografía aérea ya que el dueño de los terrenos decidió solo un día después de aparecer la figura, segarla para impedir el paso a los investigadores (algunas personas no son todo lo  solidarias que nos gustaría que fuesen para estos temas).


Sin embargo las pesquisas de los primeros que pudieron llegar a la zona, y la labor de la fotografa de Monique Klinkerbergh que tuvo la suerte de sobrevolar el área justo en el momento idóneo nos ha permitido tener la toma aérea para ponernos a trabajar sobre ella.


Si empezamos a contar los circulos, vemos que están separados por grupos de ocho. Esa es una característica básica de los numeros binarios. 


Ocho digitos con unos y con ceros. Empecemos dandole un valor a los ceros como circulos “blancos” y  a los unos como los circulos completos y con una raya en medio (los seres que realizaron el círculo de cosecha lo dejaron bien clarito cuales eran los ceros y los unos). El resultado es el siguiente.



Y ahora, solo tenemos que interpretarlos como ya hemos aprendido con la multiplicación de los números por 2 para conseguir la tablilla y después escoger los números que representan los unos y sumarlos para obtener el número que después buscaremos en la tablilla de ASCII.


128  64  32  18  4   2    1

   0     1     0    1   0   0   0   0

Se suman los númros correspondientes a los unos: 64 + 16 =  80


El número 80 en la tablilla corresponde a la letra P.

Resumiendo después de haber realizado todas las operaciones con todos los códigos, nos proporciona unas series de letras cuyo mensaje es PEACE, que en castellano significa PAZ.
 
01010000= P
01000101= E
01000001= A
01000011= C
01000101= E


Fascinante poder descifrar los mensajes de los círculos de cosechas!!... ¿Verdad?
¡De segurito que os ha gustado!... Jejeje.


Breve historia del Código ASCII:
El código ASCII (siglas en ingles para American Standard Code for Information Interchange, es decir Código Americano ( Je! lease estadounidense... ) Estándar para el intercambio de Información (Se pronuncia Aski).

Fue creado en 1963 por el Comité Estadounidense de Estándares o "ASA", este organismo cambio su nombre en 1969 por "Instituto Estadounidense de Estándares Nacionales" o "ANSI" como se lo conoce desde entonces.


Este código nació a partir de reordenar y expandir el conjunto de símbolos y caracteres ya utilizados en aquel momento en telegrafía por la compañía Bell.


En un primer momento solo incluía letras mayúsculas y números, pero en 1967 se agregaron las letras minúsculas y algunos caracteres de control, formando así lo que se conoce como US-ASCII, es decir los caracteres del 0 al 127.
Así con este conjunto de solo 128 caracteres fue publicado en 1967 como estándar, conteniendo todos lo necesario para escribir en idioma ingles.


En 1981, la empresa IBM desarrolló una extensión de 8 bits del código ASCII, llamada "pagina de código 437", en esta versión se reemplazaron algunos caracteres de control obsoletos, por caracteres gráficos. Además se incorporaron 128 caracteres nuevos, con símbolos, signos, gráficos adicionales y letras latinas, necesarias para la escrituras de textos en otros idiomas, como por ejemplo el español. Así fue como se sumaron los caracteres que van del ASCII 128 al 255.


IBM incluyó soporte a esta página de código en el hardware de su modelo 5150, conocido como "IBM-PC", considerada la primera computadora personal.
El sistema operativo de este modelo, el "MS-DOS" también utilizaba el código ASCII extendido.


Casi todos los sistemas informáticos de la actualidad utilizan el código ASCII para representar caracteres y textos (9).


Hacer Click aquí: Lista completa de caracteres del código ASCII.
Chat gratis