Hallo,
ich suche nach einer Möglichkeit in Python Zahlen ins Binärformat umzuwandeln. Gibt es dafür eine bereits fertige Funktion?
Vielen dank!
KageMurai
Zahlen ins Binärformat umwandeln
Nein, jedenfalls nicht in der Standardbibliothek. Aber hier im Forum und im Netz allgemein solltest Du fündig werden.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Code: Alles auswählen
import struct;
struct.pack("i", 0x29a);

[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Huch, da ist mir jetzt gar nicht aufgefallen dass die Frage zweideutig war. Ich habe an Zeichenketten mit 0en und 1en gedacht. 

Hmm. Danke. Ich habe das jetzt so gelöst:
Bamba[/code]
Code: Alles auswählen
while (erg!=0):
if erg%2==0:
erg=erg/2
array.append(0)
if erg%2==1:
erg=erg/2
array.append(1)
array.reverse()
print "Binaeres Ergebnis: "
print array
Bamba
Moin,
ein bisschen Forensuche ergab das hier:
http://www.python-forum.de/topic-4524.html
Gruß,
Manuel
ein bisschen Forensuche ergab das hier:
http://www.python-forum.de/topic-4524.html
Gruß,
Manuel
Hab mir auch vor einiger Zeit mal übers Forum hier ne Lösung zusammengesucht:
Code: Alles auswählen
import math
def int_to_bin(value):
"""
convert the given int value into a binary-string
example: 13 -> '1101'
"""
bits = int((math.log(value)/math.log(2))+1)
return "".join(["01"[value>>x & 1] for x in xrange(bits-1,-1,-1)])
if __name__ == "__main__":
print int_to_bin(input("int value: "))
Die Funktion mag keine 0:
Code: Alles auswählen
In [24]: int_to_bin(0)
---------------------------------------------------------------------------
<type 'exceptions.OverflowError'> Traceback (most recent call last)
/home/bj/<ipython console> in <module>()
/home/bj/<ipython console> in int_to_bin(value)
<type 'exceptions.OverflowError'>: math range error
Hmm,
ich benutzte jetzt einfach mal meinen Code weiter, da er ja auch funktioniert. Trotzdem danke!
Ich habe dazu aber noch eine Frage:
Habe diesen Code, der ganz einfach nur einen buchstaben in binär umwandeln soll. Über get_char() lese ich einen buchstaben mit raw_input ein (also ganz einfach).
Wieso erhalte ich dann aber diese Fehlermeldung:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\Sebastian\Desktop\Python\x.py", line 21, in <module>
get_char()
File "C:\Dokumente und Einstellungen\Sebastian\Desktop\Python\x.py", line 3, in get_char
binaer(char)
File "C:\Dokumente und Einstellungen\Sebastian\Desktop\Python\x.py", line 9, in binaer
if char%2==0:
TypeError: not all arguments converted during string formatting
Danke!
ich benutzte jetzt einfach mal meinen Code weiter, da er ja auch funktioniert. Trotzdem danke!
Ich habe dazu aber noch eine Frage:
Code: Alles auswählen
def binaer(char):
array=[]
ord(char)
while (char!=0):
if char%2==0:
char=erg/2
array.append(0)
if char%2==1:
char=erg/2
array.append(1)
array.reverse()
print "Binaeres Ergebnis: "
print array
get_char()
Wieso erhalte ich dann aber diese Fehlermeldung:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\Sebastian\Desktop\Python\x.py", line 21, in <module>
get_char()
File "C:\Dokumente und Einstellungen\Sebastian\Desktop\Python\x.py", line 3, in get_char
binaer(char)
File "C:\Dokumente und Einstellungen\Sebastian\Desktop\Python\x.py", line 9, in binaer
if char%2==0:
TypeError: not all arguments converted during string formatting
Danke!
Bamba
-
- User
- Beiträge: 419
- Registriert: Sonntag 3. September 2006, 15:11
- Wohnort: in den weiten von NRW
- Kontaktdaten:
Nunja, also "char" ist ein String und bleibt es auch, da gibts halt kein Modulo. "erg" wird auch nicht definiert. Dein Code funktioniert also doppelt nicht.
Hallo,
tut mir wirklich leid, aber das war mein Fehler. Ich habe 1. das falsche gepostet und 2. einen dummen Fehler gemacht. Jetzt funktioniert alles:
Danke![/code]
tut mir wirklich leid, aber das war mein Fehler. Ich habe 1. das falsche gepostet und 2. einen dummen Fehler gemacht. Jetzt funktioniert alles:
Code: Alles auswählen
def binaer(char):
array=[]
char=ord(char)
while (char!=0):
if char%2==0:
char=char/2
array.append(0)
if char%2==1:
char=char/2
array.append(1)
array.reverse()
print "Binaeres Ergebnis: "
print array
get_char()
Bamba