jueves, 25 de agosto de 2016

código binario

en 3º de bup, allá por 1994, el profesor de religión nos mandó hacer una exposición oral sobre no recuerdo qué tema. teníamos que grabarla en una cinta y entregársela, poniendo en la etiqueta nuestro nombre y apellidos.

intenté varias veces soltar mi rollo con fluidez, pero lo dejé por imposible y lo grabé como salió. es difícil hablar con una máquina con naturalidad. es como cuando dejas un mensaje en un contestador...


el profesor nos devolvió nuestras cintas con la calificación escrita en la etiqueta. hasta ahí normal, si no fuera porque las escribió en código binario, nunca supe a cuento de qué. ese profesor era muy excéntrico. a mí me puso un 1000, que en binario equivale a un 8.

en nuestra vida diaria empleamos el sistema de numeración en base 10. los números los expresamos como suma de potencias de 10:  100=1,  101=10,  102=100,  103=1.000,  104=10.000 ...

pongamos como ejemplo el número del año en que vivimos, 2016. su cifra más alta corresponde a las unidades de millar. tenemos que analizar cuántas unidades de millar (103), centenas (102), decenas (101) y unidades (100) contiene.

2016 abarca 2 unidades de millar, 0 centenas, 1 decena y 6 unidades. lo podríamos expresar como:
2·103 + 0·102 + 1·101+ 6·100.

como vemos, los dígitos de un número en base 10 son las veces que contiene cada una de las potencias de 10. pues bien, en el código binario -que es el sistema de numeración en base 2- tendremos que hacer algo análogo, pero con las potencias de 2.

20=1,  21=2,  22=4,  23=8,  24=16,  25=32,  26=64,  27=128,  28=256,  29=512,  210=1024,  211=2048,  212=4096 ... como veis, las potencias de 2 crecen significativamente más despacio que las potencias de 10, y por eso los números en binario tienen muchos más dígitos que en decimal.

volvamos al ejemplo del número que representa nuestro año, 2016. cuál es la máxima potencia de 2 que sea menor o igual que 2016? 1024, es decir 210. ya sabemos que 2016 en binario tendrá 11 dígitos -la potencia más alta +1, ya que la potencia de exponente cero también cuenta-.

restamos 2016–1024, que da como resultado 992. sobre este número aplicaremos un proceso análogo: cuál es la máxima potencia de 2 que sea menor o igual que 992? 512, que es igual a 29.

992–512 = 480. de nuevo la misma pregunta: cuál es la máxima potencia de 2 que “quepa” dentro de 480? 256, o lo que es lo mismo 28.

480–256 = 224. y cuál es la máxima potencia de 2 que quepa dentro de 224? 128, igual a 27.

224–128 = 96. cuál es la máxima potencia de 2 abarcable dentro de 96? 64, es decir 26.

96–64 = 32. hemos tenido suerte, porque 32 es una potencia de 2, concretamente 25. eso quiere decir que ya no tenemos que continuar iterando, ya que el resto de las cifras serán ceros.

recapitulemos: 2016 se expresará como suma de potencias de 2 de la siguiente manera:
1·210 + 1·29 + 1·28 + 1·27 + 1·26 + 1·25 + 0·24 + 0·23 + 0·22 + 0·21 + 0·20.

los coeficientes que multiplican a las potencias de 2 serán los dígitos en código binario. en nuestro ejemplo, 2016 en binario quedará así: 11111100000.

el código binario se denomina así porque las cifras sólo pueden tomar dos valores posibles -el prefijo ‘bi’ significa dos-: 1 y 0. y es lógico, porque al expresar los números como combinación de potencias de 2, si alguna de ellas la multiplicáramos por 2 ya estaríamos en la potencia siguiente. cada potencia de 2, o está una vez (1) o no está (0).

y dicho código binario es el lenguaje empleado en todas las aplicaciones de electrónica digital y de informática...


os dejo con una tabla de los números del 1 al 40 -el 40 para mí es un número muy especial- traducidos de decimal a binario. además he añadido el desarrollo de cada uno de ellos, para que se entienda de dónde vienen esas ristras de ceros y unos.

 0........0......................................0·20
 1........1......................................1·20
 2.......10...............................1·21 + 0·20
 3.......11...............................1·21 + 1·20
 4......100........................1·22 + 0·21 + 0·20
 5......101........................1·22 + 0·21 + 1·20
 6......110........................1·22 + 1·21 + 0·20
 7......111........................1·22 + 1·21 + 1·20
 8.....1000.................1·23 + 0·22 + 0·21 + 0·20
 9.....1001.................1·23 + 0·22 + 0·21 + 1·20
10.....1010.................1·23 + 0·22 + 1·21 + 0·20
11.....1011.................1·23 + 0·22 + 1·21 + 1·20
12.....1100.................1·23 + 1·22 + 0·21 + 0·20
13.....1101.................1·23 + 1·22 + 0·21 + 1·20
14.....1110.................1·23 + 1·22 + 1·21 + 0·20
15.....1111.................1·23 + 1·22 + 1·21 + 1·20
16....10000..........1·24 + 0·23 + 0·22 + 0·21 + 0·20
17....10001..........1·24 + 0·23 + 0·22 + 0·21 + 1·20
18....10010..........1·24 + 0·23 + 0·22 + 1·21 + 0·20
19....10011..........1·24 + 0·23 + 0·22 + 1·21 + 1·20
20....10100..........1·24 + 0·23 + 1·22 + 0·21 + 0·20
21....10101..........1·24 + 0·23 + 1·22 + 0·21 + 1·20
22....10110..........1·24 + 0·23 + 1·22 + 1·21 + 0·20
23....10111..........1·24 + 0·23 + 1·22 + 1·21 + 1·20
24....11000..........1·24 + 1·23 + 0·22 + 0·21 + 0·20
25....11001..........1·24 + 1·23 + 0·22 + 0·21 + 1·20
26....11010..........1·24 + 1·23 + 0·22 + 1·21 + 0·20
27....11011..........1·24 + 1·23 + 0·22 + 1·21 + 1·20
28....11100..........1·24 + 1·23 + 1·22 + 0·21 + 0·20
29....11101..........1·24 + 1·23 + 1·22 + 0·21 + 1·20
30....11110..........1·24 + 1·23 + 1·22 + 1·21 + 0·20
31....11111..........1·24 + 1·23 + 1·22 + 1·21 + 1·20
32...100000...1·25 + 0·24 + 0·23 + 0·22 + 0·21 + 0·20
33...100001...1·25 + 0·24 + 0·23 + 0·22 + 0·21 + 1·20
34...100010...1·25 + 0·24 + 0·23 + 0·22 + 1·21 + 0·20
35...100011...1·25 + 0·24 + 0·23 + 0·22 + 1·21 + 1·20
36...100100...1·25 + 0·24 + 0·23 + 1·22 + 0·21 + 0·20
37...100101...1·25 + 0·24 + 0·23 + 1·22 + 0·21 + 1·20
38...100110...1·25 + 0·24 + 0·23 + 1·22 + 1·21 + 0·20
39...100111...1·25 + 0·24 + 0·23 + 1·22 + 1·21 + 1·20
40...101000...1·25 + 0·24 + 1·23 + 0·22 + 0·21 + 0·20

17 comentarios:

  1. Recuerdo haber estudiado el código binario en algún momento y me parecía muy interesante jeje. Obviamente ya no recuerdo nada jajajaja.

    ResponderEliminar
  2. No me mates!!!, que soy de letras!!!hace dos días mi hijo ya me lió la cabeza sobre algo que estaba programando , y por más que me explico con los dedos de la mano como se representaba .... imposible , y me da una rabia ....

    ResponderEliminar
  3. Pues ese profe de religión tenía que molar un montón!! ^_^

    ResponderEliminar
  4. Así explicado parece muy fácil pero estoy segura de que me costaría la vida convertir un número binario en uno de base decimal. ¿Y esto fue cosa del profe de religión? Nunca me lo hubiese imaginado. Jajajaja. Besotes!!!

    ResponderEliminar
  5. geno, yo no recuerdo haberlo estudiado en el colegio. sin embargo, en la carrera era necesario en algunas asignaturas, y como lo daban por sabido, tuve que enterarme por mi cuenta de cómo funcionaba aquello. ^_^

    anilegra, así es, el código binario se usa en informática. dicen que programar es algo parecido a las matemáticas, pero no lo creo, porque a mí las mates más o menos se me dan, pero con la programación nunca he podido...

    isa, ese profesor era un fenómeno, creo recordar que era ingeniero aeronáutico y licenciado en historia. en sus clases hablaba de todo menos de religión. aplicaba la libertad de cátedra al máximo. :D

    álter, fue la primera vez que escuché lo que era el código binario. un compañero de clase muy friki, que sabía de todo, nos tradujo las notas a decimal, y supe que mi 1000 era un 8. ese profesor tenía unas ocurrencias... ^_^

    besos!!

    ResponderEliminar
  6. Cuando estudié el programa RPGII, todo era así... Fue una locura!! cuando conseguí entender algo... Salió al mercado el BASIC. Vuelta a empezar.

    Chema, no deja de ser sorprendente tu capacidad.
    Te felicito.

    Mil besitos.

    ResponderEliminar
  7. chema me acabas de recordar el código binario y eso que ya ni me acordaba después de tantos años, pero a pesar de todo, me gustan más las letras, con los números se me nubla la vista, demasiados para mí.

    Eres un AS, chema, cada día me impresionas más.

    Un beso.

    ResponderEliminar
  8. auroratris, a mí los lenguajes de programación me dan mucho miedito, jeje. en la carrera estudié el pascal, que no lo usa nadie. el basic lo tenía instalado en el primer ordenador que tuve. en cualquier caso, lo mío son los números sobre el papel, de la programación que se ocupen otros. :D

    maría, la tabla que he puesto marea un poco, jeje. la tercera columna, con la demostración de cada uno de los números, la añadí después, cuando el post ya estaba publicado. fue un trabajo de chinos, pero me entretengo con esas cosas. ^_^

    besos a las dos!!

    ResponderEliminar
  9. Pues a mí no me lo enseñaron en el cole, pero lo he entendido todo a la primera... ¡Qué va! Si un profe me llega a poner la nota en binario todavía hoy estaría intentando adivinar la cifra. ¡Es de locos!

    ResponderEliminar
  10. AyyyyyChema eres el mejor profe del mundo mundial, de verdad que es una pena que no te encontrara hace unos años para que a mi hijo le acercaras a las mates, con lo que las ha llegado a odiar. A veces le enseño tus post y me lo dice, de hecho se está reconciliando con ellas.
    Me ha encantado, lo explicas genial.
    Besitos y muy feliz finde.

    ResponderEliminar
  11. Uy, Chema...sí que lo haces difícil...jajaj. El paso de decimal a binario es mucho más sencillo:

    Cualquier número decimal se puede expresar en sistema binario, dividiendo entre dos sucesivamente hasta que el último cociente sea inferior a dos. Después tomas el último cociente (que será 1 siempre) y todos los restos en orden inverso (del último al primero

    No puedo ponerte aquí el ejemplo, te lo pongo en face.

    ResponderEliminar
  12. ses, fue una coña de ese profesor, que tenía un sentido del humor muy extraño. pero se habría entendido mejor si fuera un profesor de matemáticas. los que sacaron menos de 8 en ese trabajo tendrían una nota de tres dígitos, supongo...

    gema, se intenta hacer las cosas amenas y asequibles, jeje. espero que este año mis alumn@s colaboren un poquito más, que cuando les da por no estudiar o por llevarte la contraria en todo, la cosa se pone difícil. ^_^ me alegra que a tu hijo le guste mi blog! :)

    ana, ya lo he visto, gracias!! me vendrá bien cuando tenga que explicarlo alguna vez. me complico yo solo. :) ese método de las divisiones se asemeja un poco a la descomposión en factores primos, que es una de las cosas que más me gustan en matemáticas.

    besos!!

    ResponderEliminar
  13. Yo solo estudié binario en informática, y poco. Ya sabes que los números y yo, lo justito. Ahora aún voy ´mas fluida con cálculo mental pero las Mates hasta Bachiller me llevaron por la calle de la amargura.
    Como dice mi padre, me resulta asombroso que antes los ordenadores fueran capaces de llevar a gente a la Luna cuando solo funcionaban con 1 y 0.
    En fin, como siempre me dejas loca con tus entradas, Chema.
    Un besin

    ResponderEliminar
  14. lópez, es verdad, nos maravilla las cosas que se podían hacer antes con muchos menos medios que ahora. en mi colegio teníamos una asignatura de informática. usábamos el sistema ms-dos, en el que las instrucciones para crear carpetas, copiar/borrar/mover archivos se tecleaban en el lenguaje de este sistema, siendo algo parecido a programar, aunque entonces no lo supiéramos. y en el programa de escritura word perfect, para los diferentes formatos de texto se usaba algo parecido a las etiquetas de html, en plan [b]...[/b].
    besos y gracias por tu visita!! :*

    ResponderEliminar
  15. Chemaaaaaaaaaa, qué mareo!!! jajajajaja. Me has rayado! Yo sacaba buenas notas porque si me ponía me ponía pero la verdad es que los números para mí son marcianos.
    Muy buen post.
    Besos

    ResponderEliminar
  16. celia, mis lectoras más veteranas ya están acostumbradas a sufrir estas paranoias de posts, jeje. el siguiente, que lo voy a publicar en breve, es más light. ;)
    besos!

    ResponderEliminar