Sistema binario de numeración: características y conversiones de y hacia el sistema de numeración decimal

binary-code-574727_1280_optEl sistema numérico decimal (ver más aquí), que usamos todos los días, al ser posicional, facilita sobremanera la forma de escribir y hacer operaciones matemáticas. De hecho, el desarrollo fuerte de las matemáticas sólo fue posible hasta que se empezó a usar dicho sistema. A los humanos nos resulta natural su uso, por estar basado en el hecho de que tenemos 10 dedos y que es factible para nosotros distinguir fácilmente entre las 10 cifras que lo componen (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9). Sin embargo, darle a entender a las computadoras la numeración base diez no resultó tan sencillo. Ellas lo que entienden muy bien es: encendido/apagado o abierto/cerrado, alto/bajo voltaje y otras combinaciones de dos estados mutuamente excluyentes, como las cifras 0 y 1.

Dado lo anterior, resulta relevante entender cómo funciona el sistema de numeración binario, cómo se hacen conversiones del sistema decimal al binario y viceversa, cómo se hacen operaciones con números en binario y, ¿por qué no? algunas curiosidades y aplicaciones interesantes de esta importante forma de escribir cantidades. Por la amplitud del tema, y para que combine con la base dos de este sistema, le dedicaré dos entradas.

Al ser un sistema numérico posicional, sólo pudo desarrollarse después de que comenzó a usarse el cero. En el siglo XVII, Leibniz documentó lo que se conocía hasta ese momento del sistema binario moderno y, a mediados del siglo XIX, se publicaron las bases del Álgebra de Boole, que sirvieron para desarrollar el sistema binario de tal manera que se facilitó el diseño de circuitos electrónicos.

¿Qué es un sistema numérico posicional?

Es un sistema numérico (una forma de escribir cantidades) en el que cada dígito tiene un valor absoluto y un valor relativo según su posición.

El valor relativo de cada posición está dado por una potencia del número que es la base del sistema. Un número de unidades igual a la base forma una unidad del siguiente orden (a su izquierda). Y una unidad en una posición es tantas veces más grande como la base que una unidad a la derecha de ella.

En la posición de las unidades, la potencia es cero y de ahí hacia la derecha las potencias son negativas y hacia la izquierda son positivas. Puede parecer contra-intuitivo, hasta que recordamos que las potencias positivas más grandes corresponden a números más grandes y, por tanto, a posiciones más hacia la izquierda y las potencias negativas más grandes (en negativo) corresponden a números más pequeños y, por tanto, a posiciones más hacia la derecha. Se comprenderá mejor en el siguiente apartado.

¿Cuáles son las características del sistema binario?

Es un sistema numérico posicional cuya base es el 2, es decir, con sólo dos cifras distintas, 0 y 1, se pueden representar todos los números que existen.

El valor relativo de cada posición está dado por una potencia de 2.

Veamos una tabla con los valores posicionales expresados en potencias y en cantidades:

Tabla

Por lo tanto, 2 unidades, escrito en base 2, se ve así: 10

De forma similar:
10 unidades, escrito en base 10, se ve como 10 y
8 unidades, escrito en base 8, se ve como 10

Como la cifra más grande que se usa es el 1, cuando se tiene escrito en base 2 este número: 1111 y se le suma 1 unidad, el resultado será 10000, que, según la tabla presentada, equivale a 16 unidades

De forma similar:
En base 10: 9999 + 1 = 10000, que equivale a 10 000 unidades
En base 8: 7777 + 1 = 10000, que equivale a 4 096 unidades

*Nota: para distinguir la base en la que está escrita un número, suele ponerse el  número que indica la base como subíndice al final del número. Sin embargo, el programa con el que estoy escribiendo esto no me da la opción de escribirlo así. Por tanto, cuando esté escribiendo un número en binario o base 2, estará claramente indicado cerca de él.

¿Cómo se convierte de binario a decimal?

Es la conversión más sencilla: se multiplican todos los unos del número escrito en binario por su valor posicional y se suman. Para entenderlo mejor y ser más ordenados al trabajar, podemos sumar las multiplicaciones de todas las cifras por su valor posicional, aunque las multiplicaciones por cero realmente no se necesitarían escribir.

10101 en binario son 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 21 unidades

110011 en binario son 1 * 32 + 1 * 16 + 0 * 8 + 0 * 4 + 1 * 2 + 1 * 1 = 51 unidades

Cuando hay parte fraccionaria, se procede de forma similar:

0.101 en binario son 0 * 1 + 1 * 1/2 + 0 * 1/4 + 1 * 1/8 = 5/8 de unidad

1.0101 en binario son 1 * 1 + 0 * 1/2 + 1 * 1/4 + 0 * 1/8 + 1 * 1/16 = 1 5/16 unidades

Podrán notar que las conversiones entre binario y decimal, con partes fraccionarias, sólo podrán ser exactas cuando se trate de fracciones cuyo denominador sea potencia de 2.

¿Cómo se convierte de decimal a binario?

Como prácticamente todo en matemáticas, el proceso de conversión entre sistemas de numeración es reversible, sólo que en un sentido implica cuidados diferentes que en el otro. Existen al menos dos formas de hacer esta conversión. Veremos primero la que es más sencilla de entender, porque eso nos facilitará la comprensión de la segunda forma:

Para la primera forma de convertir, necesitamos tener presente la tabla de los valores posicionales que vimos antes:

64   32  16   8   4   2   1

Ahora convirtamos 85 de decimal a binario, usando esa tabla. Noten que el siguiente número de la tabla de valores sería 128, que es mayor a 85, por eso ya no lo necesitamos considerar:

85 es mayor que 64, por lo tanto, en la posición del 64 va un 1

64   32   16   8   4   2   1
1

Con ese 1 en esa posición, ya tenemos consideradas las primeras 64 unidades. Nos faltan 85 – 64 = 21 unidades más.

21 es más chico que 32, por lo que va un 0 en esa posición y es más grande que 16, por lo que va un 1 en esa posición:

64   32   16   8   4   2   1
1      0     1

Hasta ahí tenemos consideradas 1 * 64 + 0 * 32 + 1 * 16 = 80 unidades. Nos faltan 85 – 80 = 5 unidades más

5 es más chico que 8, por lo que va un 0 en esa posición y es más grande que 4, por lo que va un 1 en esa posición:

64   32   16   8   4   2   1
1       0      1   0   1

Hasta ahí tenemos consideradas 1 * 64 + 0 * 32 + 1 * 16 + 0 * 8 + 1 * 4 = 84 unidades. Nos faltan 85 – 84 = 1 unidad más

1 es más chico que 2, por lo que va un 0 en esa posición y es igual a 1, por lo que va un 1 en esa posición:

64   32   16   8   4   2   1
1      0      1   0   1   0   1

Listo, ya tenemos consideradas las 1 * 64 + 0 * 32 + 1 * 16 + 0 * 8 + 1 * 4 + 0 * 2 + 1 * 1 = 85 unidades

Por tanto, 1010101 en binario corresponde a 85 en decimal

Veamos cómo se haría esta conversión de una forma abreviada. Se van poniendo 1 o 0 según los criterios que ya vimos y se van haciendo las restas correspondientes para poder saber qué cantidad nos falta considerar:

64   32   16   8   4   2   1
1      0      1   0   1   0   1

85 – 64 = 21,    21 – 16 = 5,    5 – 4 = 1,    1 – 1 = 0

Veamos una conversión de una cantidad fraccionaria que da exacta, por tener denominador potencia de 2. Si queremos escribir 21/32 en notación binaria se comenzaría por la tabla de valores posicionales:

1   1/2   1/4   1/8   1/16   1/32

Como el número es más pequeño que la unidad, va un cero al principio, antes del punto que separa la parte entera de la fraccionaria (no es indispensable incluirlo, pero a mí me parece que se ve mejor y ayuda a notar el punto)

1   1/2   1/4   1/8   1/16   1/32
0 .

Como 21/32 es mayor que 1/2, va un 1 en esa posición.
1   1/2   1/4   1/8   1/16   1/32
0 . 1

Hasta aquí tenemos considerado 0 * 1 + 1 * 1/2 = 1/2. Nos falta considerar 21 / 32  –  1/2 =  5 /32

Como 5/32 es más chico que 1/4, va un cero en esa posición y como 5/32 es más grande que 1/8, va un 1 en esa posición:

1   1/2   1/4   1/8   1/16   1/32
0 .  1       0      1

Hasta aquí tenemos considerado 0 * 1 + 1 * 1/2 + 0 * 1/4 + 1 * 1/8 = 5/8 Nos falta considerar 21 / 32 – 5/8 = 1 /32

Como 1/32 es más chico que 1/16, va un cero en esa posición y como 1/32 es igual a 1/32, va un 1 en esa posición:

1   1/2   1/4   1/8   1/16   1/32
0 .   1      0      1       0         1

Por lo tanto, 5/32 unidades se escribe como 0.10101 en notación binaria.

Podemos comprobando haciendo la conversión en reversa:

0 * 1 + 1 * 1/2 + 0 * 1/4 + 1 * 1/8 + 0 * 1/16 + 1 * 1/32 = 21/32

La segunda forma de convertir se basa en los residuos de las divisiones entre 2 del número a convertir. Regularmente se enseña a hacer una serie de divisiones y luego se pide que se escriban los residuos en el orden inverso, sin explicar la razón de este proceder. Veamos cuál es esa razón:

Vamos a convertir el mismo número, 85, de notación decimal a notación binaria:

Hacemos una primera división: 85 / 2 = 42 con residuo 1

Eso significa que necesitamos un 1 en la posición más a la derecha, para que sume un 1 a la cantidad final (por lo tanto, todos las cantidades enteras que son nones tienen un 1 en la última posición, y las que son pares tienen un 0)

Empecemos a formar el número: _ _ _ _ _ _ 1

Volvemos a dividir: 42 / 2 = 21 residuo 0

Necesitamos un 0 en la segunda posición de derecha a izquierda, porque para conformar el número no se necesitará sumar un 2:
_ _ _ _ _ 0 1

Volvemos a dividir: 21 / 2 = 10 residuo 1

Necesitamos un 1 en la tercera posición de derecha a izquierda, porque para conformar el número se necesitará sumar un 4
_ _ _ _ _ 1 0 1

Volvemos a dividir: 10 / 2 = 5 residuo 0

Necesitamos un 0 en la cuarta posición de derecha a izquierda, porque para conformar el número no se necesitará sumar un 8:
_ _ _ 0 1 0 1

Volvemos a dividir: 5 / 2 = 2 residuo 1

Necesitamos un 1 en la quinta posición de derecha a izquierda, porque para conformar el número se necesitará sumar un 16:
_ _ 1 0 1 0 1

Volvemos a dividir: 2 / 2 = 1 residuo 0

Necesitamos un 0 en la sexta posición de derecha a izquierda, porque para conformar el número no se necesitará sumar un 32:
_ 0 1 0 1 0 1

Volvemos a dividir: 1 / 2 = 0 residuo 1

Necesitamos un 1 en la séptima posición de derecha a izquierda, porque para conformar el número se necesitará sumar un 64:
1 0 1 0 1 0 1

Que es el mismo resultado que habíamos obtenido anteriormente.

De forma abreviada, se escriben las operaciones una tras otra y se van acomodando los residuos de derecha a izquierda. Usaré un ejemplo diferente porque el 85 escrito en binario es simétrico y puede no quedar tan claro que deben escribirse de derecha a izquierda los residuos:

56 en binario sería:
56 / 2 = 28 R0
28 / 2 = 14 R0
14 / 2 = 7 R0
7 / 2 = 3 R1
3 / 2 = 1 R1
1 / 2 = 0 R1

Escribiendo los residuos de derecha a izquierda, 56 en binario se escribe 1 1 1 0 0 0

Para convertir cantidades fraccionarias a binario, la forma como se enseña tradicionalmente es a partir del número escrito en decimal. Si usamos el número del ejemplo anterior, 21/32, su equivalencia en decimales es 0.65625

El procedimiento a seguir es ir multiplicando por 2 el número y ver qué pasa con los enteros que resulten.

Partimos de que el número es menor a la unidad, por lo tanto empezamos con
0._ _ _ _ _

Multiplicamos 0.65625 * 2 = 1.325. Si la multiplicación lleva a un número mayor que la unidad, le agregamos un 1 al número en binario en la posición que estemos calculando, porque significa, en este caso, que requerimos sumar 1/2 para formar la cantidad:
0.1 _ _ _ _

Multiplicamos la parte decimal del resultado anterior: 0.325 * 2 = 0.625. Quedan 0 enteros, le agregamos un 0 al número en binario:
0.10 _ _ _

Multiplicamos de nuevo: 0.625 *2 = 1.25. Agregamos un 1:
0.101_ _

Multiplicamos 0.25 * 2 = 0.5. Agregamos un 0:
0.1010_

Multiplicamos 0.5 * 2 = 1. Agregamos un 1 y terminamos:
0.10101

21/32 en decimal se escribe 0.10101 en binario

Que es el resultado que habíamos obtenido anteriormente.

El objetivo de este blog es que se entiendan los fundamentos de todos los procedimientos, por lo que volveremos a hacer esa conversión usando fracciones, para que se vea más claramente lo que ocurre:

21 / 32 * 2 = 21 / 16 Como 21 / 16 es más grande que la unidad, significa que el número original es más grande que 1 / 2 y, por lo tanto, en la notación binaria debemos agregar un 1 después del punto para considerar ese 1/2 que necesitamos:

0.1 _ _ _ _

Lo que sigue es decidir si en la siguiente posición va un 1 o un 0. Para eso le restamos la unidad al resultado anterior:

21 / 16 – 1 = 21 / 16 – 16 / 16 = 5 / 16

Y repetimos la multiplicación:

5 / 16 * 2 = 5 / 8. Como es menor que la unidad, va un cero en la siguiente posición:

0.10_ _ _

Al no exceder la unidad, no se necesita restar una unidad, sólo necesitamos volver a multiplicar:

5 / 8 * 2 = 5 / 4. Es mayor que la unidad, y llevamos 3 multiplicaciones por 2, lo que significa que necesitamos un 1 en la tercera posición, para agregar 1/8 a nuestra cantidad:

0.101_ _

Restamos y multiplicamos:

5 / 4 – 1 = 1 / 4
1 / 4 * 2 = 1 / 2

Es menor a la unidad, por lo que sigue un cero: 0.1010_

Multiplicamos:

1 / 2 * 2 = 1

Es igual a la unidad, por lo que sigue un 1 y terminamos: 0.10101 en binario es igual a 21/32 unidades.

Este proceso de multiplicar por 2 las fracciones directamente nos permite darnos cuenta de que, si el denominador no es una potencia de 2, seguiremos multiplicando por 2 un número infinito de veces y nunca llegaremos a la unidad. Por ello, todos los números menores a la unidad que no provienen de una fracción cuyo denominador sea potencia de 2 tendrán un número infinito de cifras después del punto al escribirse en binario.

calculator-168360_1280_opt.jpgY eso puede ser un gran problema cuando se hacen operaciones con decimales mediante un una calculadora, dado que las calculadoras convierten a binario lo que escribimos en decimal, hacen los cálculos solicitados y luego convierten de regreso, de binario a decimal, el resultado. La exactitud puede perderse y es necesario contemplarlo en las programaciones de esos aparatos.

Por cuestiones de espacio, de tiempo y congruencia, este tema de los números en base dos lo abordaré en dos entradas consecutivas. Así que aquí pondré: continuará…

Para cerrar

En la siguiente entrada explicaré cómo se hacen operaciones con números en notación binaria y algunas otras propiedades, aplicaciones y curiosidades de esta interesante y útil notación.

network-65923_1280_optPor lo pronto, sólo incluiré 11 anécdotas relacionados con esta notación:

Existen 10 tipos de personas, los que entienden de números binarios y los que no…

La idea original de la película 101 dálmatas incluía a los dos perros adultos y tres cachorros nada más…

Mi profesor de educación física me pidió hacer 100 sentadillas y, como sé leer en binario, hice 25 veces menos que mis compañeros…

¿Conocen alguna otra? Compártanlo en los comentarios, por favor.

Como siempre, gracias por leer y compartir.

¡Hasta la próxima semana!

Rebeca

PD1: Aún no he logrado insertar en esta sección un botón que permita seguir el blog… lamento la molestia que implica ir a la página principal para hacerlo.

PD2: Quiero agradecer a estas páginas en las que me apoyo constantemente para redactar el blog: pixabay y webresizer

Algunos datos los obtuve de Wikipedia. Realicé la imagen en Word.

5 comentarios en “Sistema binario de numeración: características y conversiones de y hacia el sistema de numeración decimal

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.