Ich möchte einfach eine Base-2-Binärzahl-String in eine int, etwas wie dieses konvertieren:
>>> '11111111'.fromBinaryToInt()
255
Gibt es eine Möglichkeit, dies in Python zu tun?
Ich möchte einfach eine Base-2-Binärzahl-String in eine int, etwas wie dieses konvertieren:
>>> '11111111'.fromBinaryToInt()
255
Gibt es eine Möglichkeit, dies in Python zu tun?
Eine andere Möglichkeit ist die Verwendung der Option bitstring
Modul:
>>> from bitstring import BitArray
>>> b = BitArray(bin='11111111')
>>> b.uint
255
Beachten Sie, dass sich die vorzeichenlose Ganzzahl von der vorzeichenbehafteten Ganzzahl unterscheidet:
>>> b.int
-1
Le site bitstring
Modul ist keine Voraussetzung, aber es verfügt über viele leistungsfähige Methoden, um Eingaben in Bits und aus Bits in andere Formen umzuwandeln und sie zu manipulieren.
Die Verwendung von int mit base ist der richtige Weg. Ich pflegte dies zu tun, bevor ich fand, dass int auch base nimmt. Es ist im Grunde eine Reduktion auf eine Liste Verständnis der primitiven Weg der Umwandlung von binären in dezimale ( zB 110 = 2**0 * 0 + 2 ** 1 * 1 + 2 ** 2 * 1) angewendet
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))])
Wenn Sie wissen wollen, was hinter den Kulissen passiert, dann sind Sie hier richtig.
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')
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.