Tests, Meinungen, Beiträge

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))))
Neueste Kommentare