pasar numero entero convertir como binario python

python - como - convertir un numero entero a decimal en c#



Convertir la cadena de número binario base-2 a int (6)

Simplemente me gustaría convertir una cadena de número binario base-2 en un int, algo como esto:

>>> ''11111111''.fromBinaryToInt() 255

¿Hay una manera de hacer esto en Python?


Si quieres saber lo que está sucediendo detrás de la escena, entonces aquí tienes.

class Binary(): def __init__(self, binNumber): self._binNumber = binNumber self._binNumber = self._binNumber[::-1] self._binNumber = list(self._binNumber) self._x = [1] self._count = 1 self._change = 2 self._amount = 0 print(self._ToNumber(self._binNumber)) def _ToNumber(self, number): self._number = number for i in range (1, len (self._number)): self._total = self._count * self._change self._count = self._total self._x.append(self._count) self._deep = zip(self._number, self._x) for self._k, self._v in self._deep: if self._k == ''1'': self._amount += self._v return self._amount mo = Binary(''101111110'')


Otra forma de hacerlo es mediante el módulo de bitstring :

>>> from bitstring import BitArray >>> b = BitArray(bin=''11111111'') >>> b.uint 255

Tenga en cuenta que el entero sin signo es diferente del entero con signo:

>>> b.int -1

El módulo de bitstring no es un requisito, pero tiene muchos métodos bitstring para convertir la entrada en bits y de otros en otras formas, así como para manipularlos.


Simplemente escriba 0b11111111 en la interfaz interactiva de Python:

>>> 0b11111111 255


Una implementación recursiva de Python:

def int2bin(n): return int2bin(n >> 1) + [n & 1] if n > 1 else [1]


Usar int con base es el camino correcto a seguir. Solía ​​hacer esto antes de encontrar int también toma la base. Básicamente es una reducción aplicada en una lista de comprensión de la forma primitiva de convertir binario a decimal (por ejemplo, 110 = 2 ** 0 * 0 + 2 ** 1 * 1 + 2 ** 2 * 1)

add = lambda x,y : x + y reduce(add, [int(x) * 2 ** y for x, y in zip(list(binstr), range(len(binstr) - 1, -1, -1))])


Utiliza la función int incorporada y le pasa la base del número de entrada, es decir, 2 para un número binario:

>>> int(''11111111'', 2) 255

Aquí está la documentación para python2 , y para python3 .