Trabajando con Números Binarios y Operadores Lógicos en Python
Introducción:
Existen una gran variedad de sistemas numéricos y de numeración, y nuestras computadoras solo saben manipular uno, el sistema binario. A nuestras computadores no les enseñaron igual que a todos nosotros, nuestros equipos no tienen ninguna noción de números, excepto "verdadero" o "Falso", 1 o 0.
En este articulo aprenderemos a usar números binarios en Python, como convertirlos a decimales (y viceversa), y cómo hacer operaciones con ellos.
Para realizar los ejemplo de hoy, no es necesario ningún modulo externo a la librería estándar de Python. Python pueden trabajar con números binarios muy bien.
Sistema Binario:
El sistema binario, es un sistema de numeración en el que los números son representados por dos cifras: ceros y uno (0 y 1). Es el sistema utilizado por las computadoras debido a que estas trabajan internamente con dos niveles de voltaje,por lo cual su sistema de numeración natural es el sistema binario.
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
¦ | − | ¦ | − | − | ¦ | ¦ | − | ¦ | ¦ |
x | o | x | o | o | x | x | o | x | x |
y | n | y | n | n | y | y | n | y | y |
Mientras que en el sistema de numeración decimal se usan diez dígitos (diez símbolos), en el binario se usan solo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores: 0 o 1.
Números Binarios:
int('00', 2)
int('01', 2)
int('10', 2)
int('11', 2)
int('100', 2)
int('101', 2)
Supongo que conocen el método int() para la conversión de datos a enteross. El segundo parámetro le dice a Python que tenemos un un numero basado en 2 elementos.
Para convertir un byte (8 bits) a decimal, debemos escribir una combinación de 8 bits en el primer parámetro.
int('00010001', 2)
int('1111111', 2)
¿Cual es la magia detrás de todo esto? Cada dígito (De derecha a izquierda) se multiplica por la potencia de 2.
El número '00110010' sería (0 x 2 ^ 0) + (1 x 2 ^ 1) + (0 x 2 ^ 2) + (0 x 2 ^ 3) + ( 1 x 2 ^ 4) + ( 1 x 2 ^ 5) + (0 x 2 ^ 6) + (0 x 2 ^ 7) = 32 + 16 + 2 = 50.
El número '00101010' sería (0 x 2 ^ 0) + (1 x 2 ^ 1) + (0 x 2 ^ 2) + (1 x 2 ^ 3) + (0 x 2 ^ 4) + (1 x 2 ^ 5) + (0 x 2 ^ 6) + (0 x 2 ^ 7) = 42.
Con la practica diaria, se nos hará muy fácil.
Operadores lógicos:
inputA = int ( '0101' , 2 )
print("Antes de cambiar: " + str ( inputA ) + " " + bin ( inputA ))
print("Después de cambiar en binario: " + bin ( inputA << 1 ))
print("Después de cambiar en decimal : " + str ( inputA << 1 ))
Antes de cambiar (0,1,0,1) tenemos el número 5. Después del cambio (1,0,1,0) tenemos el número 10. En python puede usar el operador bitwise left (<<) para desplazarse hacia la izquierda y el operador bitwise right (>>) para desplazarse hacia la derecha.
Operador AND:
inputA = int ( '00100011' , 2 ) # define la entrada de secuencia binaria A
inputB = int ( '00101101' , 2 ) # define la secuencia binaria inputB
bin( inputA and inputB )
Operador OR:
El operador or (|) verifica las dos entradas, si al menos una entrada es positiva la salida sera positiva:
inputA = int('00100011',2)
inputB = int('00101101',2)
print(bin(inputA))
print(bin(inputB))
print(bin(inputA | inputB))
Bueno, una explicación breve, pero muy importante, y es algo que debemos de saber.
Te invito a que sigas investigando, y aprendiendo. Comparte tu experiencia con nosotros dejando un buen comentario.
Mi nombre es Luis y fue un placer compartir mis conocimientos con todos ustedes :D.
-
Gracias por tus aportes y tiempo
-
Hola Luis, que te parece esta noticia:
https://www.redeszone.net/2017/12/18/python-excel/
Slds
Deja una respuesta
Muy buenos dias matavillado por esta publicasion mui intetesante y me digo que sera lo que no se puede hacer con python