hex in ascii

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.
patrickk

Mittwoch 10. August 2005, 14:06

Hallo,


weiss jemand wie man hex in Ascii wandeln kann? Nicht andersrum!
Am besten eine python Loesung...
Will nicht staendig in Tabellen nachschaeun muessen...

Danke,


Patrick :shock: :shock: :shock: :shock:
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Mittwoch 10. August 2005, 14:18

Hi!

So?

Code: Alles auswählen

>>> hex(123)
'0x7b'
>>> int(0x7b)
123
>>> str(0x7b)
'123'
Gruß, mawe
patrickk

Mittwoch 10. August 2005, 14:24

Hi,


leider brauche ich Ascii. Ich habe hex als Daten und will das Ascii Zeichen...


Patrick
Gast

Mittwoch 10. August 2005, 14:37

Meinst du sowas?

Code: Alles auswählen

>>> chr(0x41)
'A'
Gruß,
Gast
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 10. August 2005, 14:38


CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mittwoch 10. August 2005, 14:39

Code: Alles auswählen

In [9]: s = 'M'
In [11]: d = ord(s)
In [13]: h = hex(d)
In [14]: h
Out[14]: '0x4d'
In [15]: chr(int(0x4d)
Out[15]: 'M'
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mittwoch 10. August 2005, 14:47

Ups :oops: Ich sollte erstmal richtig die Frage durchlesen...

Ich hab auf Platte immer ein kleines Skript, welches eine ASCII Tabelle liefert, nett ist das String_Escape :

Code: Alles auswählen

for i in xrange(255):
    char = chr(i)
    string_escaped = chr(i).encode("String_Escape")
    if string_escaped == char: string_escaped = ""
    print "%3s - %-4s %s" % ( i, char, string_escaped )

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
patrickk

Freitag 12. August 2005, 12:56

Hallo,


danke fuer die antworten. Und was mache ich, wenn ich einen string habe in dem ein hex wert steht? kann man das irgendwie konvertieren?
val = "0x50"
str(val)
da kommt natuerlich dasselbe wieder raus... wie kann man es umwandeln?


Danke,


Patrick
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 12. August 2005, 13:02

patrickk hat geschrieben:danke fuer die antworten. Und was mache ich, wenn ich einen string habe in dem ein hex wert steht? kann man das irgendwie konvertieren?
da kommt natuerlich dasselbe wieder raus... wie kann man es umwandeln?
In was willst du es umwandeln? In einen Dezimalwert?

Code: Alles auswählen

>>> hex(10)
'0xa'
>>> type(0xa)
<type 'int'>
My god, it's full of CARs! | Leonidasvoice vs Modvoice
patrickk

Freitag 12. August 2005, 13:14

Hi,

ich moechte hex in scii umwandeln.
die hexwerte stehen aber in einem string..
val =50
val="0x"+val
str(val)
geht nicht, da es ein string bleibt...
es kommt 0x50 raus, statt dem ascii wert, den man bekommt, wenn man per hand str(0x50) schreibt...


Patrick
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Freitag 12. August 2005, 13:20

Achtung, böses eval(), geht bestimmt einfacher/besser:

Code: Alles auswählen

val = 50
print str( eval( "0x%s" % val ) )

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Freitag 12. August 2005, 16:52

jep geht einfacher:

Code: Alles auswählen

zahl = int('0x0A',16)
print zahl,'=>',chr(zahl)
Gruss
error404
User
Beiträge: 18
Registriert: Montag 24. Oktober 2016, 09:14

Mittwoch 4. Januar 2017, 11:03

Wie ist das wenn ich ein Hexwert zahl=3423546435775 habe und diesen als ascii ausgeben will und die Hexzahl halt unterscheidlich lang sein kann?
BlackJack

Mittwoch 4. Januar 2017, 11:25

@error404: Was soll die Zahl 3423546435775 denn als ASCII bedeuten? ASCII kennt nur die Werte im Bereich von 0 bis 127 für ein Zeichen, diese Zahl ist bedeutend grösser. Und ist das tatsächlich eine Hexadezimalzahl? Also reden wir tatsächlich von der Zahl 917221509650293 im Dezimalsystem?
error404
User
Beiträge: 18
Registriert: Montag 24. Oktober 2016, 09:14

Mittwoch 4. Januar 2017, 14:03

Sry, ich meine als Zahl=24 43 65 23 54 45 65 also immer 2 zusammen.
Antworten