Hex String zum Int Zahl

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
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

Donnerstag 12. Oktober 2006, 11:25

Wenn ich eine Zahl in Hex String umwandeln möchte, dann benutze ich die hex() Funktion.
Gibt es eine Umkehrfunktion, die wieder aus einem Hexstring z.B. '\xfa' oder '0xff' eine integer Zahl berechnet

Erka :?:
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Donnerstag 12. Oktober 2006, 11:39

Hoi,

int() wird diese Arbeit machen, aber Vorsicht:

Code: Alles auswählen

>>> x = hex(1)
>>> x #gibt '0x1', ist also ein String
'0x1'
>>> int(x)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ValueError: invalid literal for int(): 0x1
>>> int(x,0)
1
Das letzte funktioniert. Und warum?

Code: Alles auswählen

>>> print int.__doc__
int(x[, base]) -> integer

Convert a string or number to an integer, if possible.  A floating point
argument will be truncated towards zero (this does not include a string
representation of a floating point number!)  When converting a string, use
the optional base.  It is an error to supply a base when converting a
non-string. If the argument is outside the integer range a long object
will be returned instead.
Klar?

Gruss,
Christian
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

Donnerstag 12. Oktober 2006, 11:42

Mit int() funktioniert es, wenn du die base angibst (oder 0, dann sucht er sich die selber).

Code: Alles auswählen

>>> x = hex(27)
>>> x
'0x1b'
>>> y = int(x,0)
>>> y
27

Edit: ...zu langsam
erka
User
Beiträge: 17
Registriert: Montag 24. April 2006, 16:01

Donnerstag 12. Oktober 2006, 11:55

Danke Nirven und CM
Den Base Parameter habe ich einfach nicht beachtet!
Ich muss meine Hausaufgaben besser machen!
erka :D
Antworten