Python | Lista binaria a entero

El problema que se discute en este artículo es bastante común y todos los programadores lo habrían encontrado. La conversión de la lista de números binarios a su valor entero se puede hacer usando atajos y el conocimiento de ellos puede resultar bastante útil. Vamos a discutir ciertas formas en que esto se puede hacer.

Método #1: Uso join()de la comprensión de listas +
La combinación de estas dos funciones puede ayudar a lograr esta tarea en particular. En este método, la lista completa se convierte primero en string y luego se escribe la conversión en int y luego se obtiene el número binario.

# Python3 code to demonstrate 
# converting binary list to integer 
# using join() + list comprehension
  
# initializing list 
test_list = [1, 0, 0, 1, 1, 0]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using join() + list comprehension
# converting binary list to integer 
res = int("".join(str(x) for x in test_list), 2)
  
# printing result 
print ("The converted integer value is : " +  str(res))

Producción :

The original list is : [1, 0, 0, 1, 1, 0]
The converted integer value is : 38

Método n.º 2: Uso de desplazamiento de bits +| operator
Esta tarea en particular se puede realizar desplazando los bits y tomando el | con cada uno de los bits siendo procesados. Esta es otra forma elegante en la que esto se puede realizar.

# Python3 code to demonstrate 
# converting binary list to integer 
# using bit shift + | operator
  
# initializing list 
test_list = [1, 0, 0, 1, 1, 0]
  
# printing original list
print ("The original list is : " + str(test_list))
  
# using bit shift + | operator
# converting binary list to integer 
res = 0
for ele in test_list:
    res = (res << 1) | ele
  
# printing result 
print ("The converted integer value is : " +  str(res))

Producción :

The original list is : [1, 0, 0, 1, 1, 0]
The converted integer value is : 38

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *