
Estos días he necesitado desempolvar los apuntes de números binarios para crear una serie de máscaras.
Pero, ¿qué es sistema binario?
Es un sistema numérico en base 2 que sólo utiliza dos dígitos diferentes, el 0 y el 1, que se conocen como bits. Por esta razón un número binario es una sucesión de bits.
Como el sistema decimal, el sistema binario es posicional, esto significa que cada dígito tiene un valor relativo a la posición que ocupa en el número. El valor de la posición se consigue multiplicando el dígito por una potencia de 2.
Al igual que el sistema decimal, el sistema binario es posicional, por lo cual cada dígito tiene un valor relativo a la posición que ocupa en el número. El valor de posición en este sistema se consigue multiplicando el dígito por una potencia de 2. A continuación se muestra una tabla con los valores posiciónales de los dígitos en el sistema numérico binario.
Cómo convertir un número binario en un número decimal
Para realizar esta conversión multiplicaremos cada dígito por su posición y sumaremos todos los valores, por ejemplo, dado el número binario 10101 convertirlo a decimal
10101 = 1×24 + 0×23 + 1×22 + 0×21 + 1×20 = 16 + 0 + 4 + 0 + 1
1 0 1 0 1 — Número binario
4 3 2 1 0 — Posición
1×24 + 0×23 + 1×22 + 0×21 + 1×20 = 16 + 0 + 4 + 0 + 1 = 21
Como convertir un número decimal en un número binario
Ya que los números decimales se componen de una parte entera y una parte decimal, debemos convertir por separado la parte entera y la parte decimal.
En el número 2.345,25 la parte entera es 2.345 y la parte decimal es 0,25.
Para convertir la parte entera en binario tendremos que realizar los siguientes pasos,
- Dividir el número entre 2 y anotar el resto
- Si el cociente es mayor de 0 lo dividiremos entre 2 y pasaremos al paso 1, utilizando el cociente
- El resultado se encuentra anotando los residuos encontrados, escritos en orden inverso a cómo fueron conseguidos.
Pasaremos el número 29 a binario, según los pasos anteriores
- 29÷2 = 14 resto 1
- 14÷2 = 7 resto 0
- 7÷2 = 3 resto 1
- 3÷2 = 1 resto 1
- 1÷2 = 0 resto 1
Por lo que 29 = 11101
Para convertir la parte decimal en binario tendremos que realizar los siguientes pasos,
- Multiplicamos la parte fraccionaria por 2 y anotamos la parte entera
- Si la parte fraccionaria del resultado es mayor que cero pasamos al paso 1 utilizando la parte fraccionaria encontrada
- El resultado se encuentra escribiendo las partes enteras encontradas en el orden que fueron obtenidas y añadiendo el punto decimal al principio
Pasaremos el número 0,78125 a binario según los pasos anteriores
- 0,78125 x 2 = 1,5625 parte entera 1
- 0,5625 x 2 = 1,125 parte entera 1
- 0,125 x 2 = 0,25 parte entera 0
- 0,25 x 2 = 0,5 parte entera 0
- 0,5 x 2 = 1,0 parte entera 1
Por lo que 0,78125 = 11001
A continuación representamos los diez primeros números decimales en binario
Número decimales y binarios | |
Enteros no negativos | Equivalente binario |
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
Operaciones con números binarios
Las combinaciones a la hora de sumar dos bits son:
- 0 + 0 = 0
- 0 + 1 = 1
- 1 + 0 = 1
- 1 + 1 = 10 al sumar 1+1 siempre nos llevamos 1 a la siguiente operación.
Por lo que,
10011000 + 00010101 ——————————— 10101101
Las combinaciones a la hora de restar dos bits son:
- 0 – 0 = 0
- 1 – 0 = 1
- 1 – 1 = 0
- 0 – 1 = 1 (se transforma en 10 – 1 = 1) (en sistema decimal equivale a 2 – 1 = 1)
Por lo que,
10001 11011001 -01010 -10101011 —————— ————————— 00111 00101110
La multiplicación de dos números binarios se realiza de la misma forma que con los números decimales; el 0 multiplicado por cualquier número es 0 y el 1 es el elemento neutro del producto,
Por ejemplo, multipliquemos 10110 por 1001:
10110 1001 ————————— 10110 00000 00000 10110 ————————— 11000110
La división de números binarios también es similar a la decimal, la única diferencia es que a la hora de realizar las restas, dentro de la división, éstas se tienen que hacer en binario, veamos un ejemplo,
Vamos a dividir 100010010 (274) entre 1101 (13),
100010010 |1101 —————— - 0000 010101 ——————— 10001 - 1101 ——————— 01000 - 0000 ——————— 10000 - 1101 ——————— 00111 - 0000 ——————— 01110 - 1101 ——————— 00001
Veamos ahora como se realizan operaciones AND (Y), OR (o), XOR y NOT,
Para las operaciones AND se obtiene como resultado 1 si los dos operandos son 1
Para las operaciones OR se obtiene como resultado 1 si cualquier de sus operandos es 1
Para las operaciones XOR se obtiene como resultado 1 si os operandos son distintos
Para las operaciones NOT se obtiene como resultado 1 si el operando es 0 y viceversa
Creo que más o menos y por encima hemos explicado como realizar cálculos con números binarios, espero que os sea de utilidad.