Seite 1 von 1

Binär form einer Python variable?

Verfasst: Freitag 27. November 2009, 16:42
von thomaz
hi leute,
weiß jemand wie ich an die Binär form einer Python variable rankomme?
also die vorm der werte die die hashlib verwendet um z.b. nen md5 zu berechnen?
mfg thomaz

Re: Binär form einer Python variable?

Verfasst: Freitag 27. November 2009, 16:51
von numerix
thomaz hat geschrieben:hi leute,
weiß jemand wie ich an die Binär form einer Python variable rankomme?
also die vorm der werte die die hashlib verwendet um z.b. nen md5 zu berechnen?
mfg thomaz
Ab Python 2.6: bin()

Verfasst: Freitag 27. November 2009, 16:56
von thomaz
da kommt bei mir immer nur:
TypeError: 'str' object cannot be interpreted as an index

Verfasst: Freitag 27. November 2009, 17:27
von numerix
thomaz hat geschrieben:da kommt bei mir immer nur:
TypeError: 'str' object cannot be interpreted as an index
Was für ein index? Sicher, bin() liefert eine Zeichenkette.

Verfasst: Freitag 27. November 2009, 17:32
von thomaz
bin("test")
bin(test)
hab alle möglichen sachen ausprobiert, mag net^^

Verfasst: Freitag 27. November 2009, 17:41
von Darii
Was genau willst du eigentlich haben, „die“ „Binärform“ einer Variable gibt nicht. Offenbar hast du einen String vorliegen. Willst du wirklich einen String mit Einsen und Nullen haben oder die einzelnen Bytes deines Strings? ansonsten guck dir einfach mal die Implementierung der hashlib an.

Verfasst: Freitag 27. November 2009, 17:43
von thomaz
ich will die einzelnen Bytes deines Strings.

Verfasst: Freitag 27. November 2009, 18:02
von martin101986
Hallo,

wenn du eine Darstellung von den Zeichen im String im Binärformat haben willst:

Code: Alles auswählen


def strtobytes(s, out=bin):
    return [out(ord(c)) for c in s]

>>> strtobytes("test")
['0b1110100', '0b1100101', '0b1110011', '0b1110100']
>>>strtobytes("test",hex)
['0x74', '0x65', '0x73', '0x74']

Grüße
Martin

Verfasst: Freitag 27. November 2009, 18:10
von Darii
thomaz hat geschrieben:ich will die einzelnen Bytes deines Strings.

Code: Alles auswählen

map(ord, dein_string)
Wobei du da beachten musst, dass das keine Bytes sind sondern xx bit-Integer, einen wirklichen Byte-Typ hat Python nicht.

Verfasst: Freitag 27. November 2009, 19:43
von BlackJack
Wobei die `hashlib` die Strings haben möchte, ohne irgendwelche Umwandlungen in Zeichenketten, die nur aus 0en und 1en bestehen. Also wär's vielleicht ganz gut noch einmal das ursprüngliche Problem *genau* zu erfahren.