Eine einfache Art in Python, eine Dezimalzahl in eine „binäre“ Integer-Liste umzuwandeln könnte wie folgt aussehen:
binary_int_map = map(int, list('{0:0>8b}'.format(59)))
Zuerst wird durch list() eine binäre String-List aus der Dezimalzahl 59 erzeugt, wobei bis auf 8 Stellen eine 0 aufgefüllt wird (führende Nullen). In diesem Fall würde folgende Liste erstellt werden.
Dies wird durch die Formatierungsanweisung {0:0>8b} bewerkstelligt, wobei >8 bedeutet, dass mindestens 8 Stellen mit führenden Nullen erzeugt werden sollen und das b eine Konvertierung in eine Binärzahl bewirkt.
['0', '0', '1', '1', '1', '0', '1', '1']
Durch den Befehl map() wird ein Inter-Map Objekt erzeugt, sprich es werden alle Strings in Integers umgewandelt. Nun kann man einfach über diese Map interieren und per IF Anweisung den Binärcode interpretieren:
for i in binary_int_map: if (i): print('{0} equals True'.format(i)) else: print('{0} equals False'.format(i))
Die Ausgabe dieser FOR Schleife ist wie folgt:
0 equals False 1 equals True 1 equals True 1 equals True 0 equals False 1 equals True 1 equals True 0 equals False
Somit lassen sich relativ einfach Binäre Signale für DA-Wandler (DAC) o.ä. erzeugen.
Aus dem Map-Objekt läßt sich wie folgt wieder eine Liste erzeugen:
binary_int_list = list(binary_int_map)
Oder man verwendet die Konvertierung gleich von Anfang an, mittels dieser Code-Zeile:
binary_int_list = list(map(int, list('{0:0>8b}'.format(118))))