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
hex in ascii
Hi,
leider brauche ich Ascii. Ich habe hex als Daten und will das Ascii Zeichen...
Patrick
leider brauche ich Ascii. Ich habe hex als Daten und will das Ascii Zeichen...
Patrick
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hilft dich vielleicht http://www.python.org/doc/current/lib/m ... ascii.html weiter?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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 (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Ups 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 :
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 )
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
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
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
In was willst du es umwandeln? In einen Dezimalwert?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?
Code: Alles auswählen
>>> hex(10)
'0xa'
>>> type(0xa)
<type 'int'>
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
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
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Achtung, böses eval(), geht bestimmt einfacher/besser:
Code: Alles auswählen
val = 50
print str( eval( "0x%s" % val ) )
-
- User
- Beiträge: 773
- Registriert: Mittwoch 5. November 2003, 18:06
- Wohnort: Schweiz
- Kontaktdaten:
jep geht einfacher:
Gruss
Code: Alles auswählen
zahl = int('0x0A',16)
print zahl,'=>',chr(zahl)
@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: Das ist jetzt irgendwie eine *andere* Zahl und die ursprüngliche hatte auch eine ungerade Anzahl von Ziffern.
Falls 24436523544565 zur Basis 16 gemeint sein sollte und da als Ergebnis '$Ce#TEe' herauskommen soll, dann schau Dir mal das `binascii`-Modul in der Standardbibliothek an.
Edit: Sollte es eigentlich 10207200825066853 dezimal sein, dann hatten wir die `int.to_bytes()`-Methode ja schon mal in einem anderen Thema.
Falls 24436523544565 zur Basis 16 gemeint sein sollte und da als Ergebnis '$Ce#TEe' herauskommen soll, dann schau Dir mal das `binascii`-Modul in der Standardbibliothek an.
Edit: Sollte es eigentlich 10207200825066853 dezimal sein, dann hatten wir die `int.to_bytes()`-Methode ja schon mal in einem anderen Thema.