Wie Binärzahl erweitern?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
NoBody2
User
Beiträge: 12
Registriert: Mittwoch 8. November 2017, 01:49

Als Beispiel ist folgende Zahl gegeben (Länge zufällig):
1110111011
Wie kann ich am effizientesten 11 davorsetzen? Gibt es dafür einen Befehl oder so?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Einen Befehl gibt es so nicht. Was du machen kannst ist eine Bitmaske generieren, um zu prüfen, ob ein bestimmtes Bit gesetzt ist.

Code: Alles auswählen

for i in itertools.count(): 
     mask = 1 << i 
     if mask & zahl and zahl ^ mask < mask: # Bit ist gesetzt und das höchstwertige    
Dann musst du nur noch die zwei Bits verschieben und mit der zahl verodern.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@NoBody2: Zahlen kennen die Methode bit_length.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Na siehste, wieder was gelernt!
Antworten