Seite 3 von 3

Re: wer kann diese python-routine mal umsetzen in basic.

Verfasst: Mittwoch 3. November 2010, 12:03
von EyDu
funkheld hat geschrieben:Bei der 1. sollte eine "hex" geprintet werden oder? es kommt eine Decimalzahl, macht aber nichts.
Ganz offensichtlich nicht. Vielleicht solltest du den Code schrittweise im interaktiven Interpreter ausprobieren.
funkheld hat geschrieben:Kann man bei Python mit einem Integerwert(4byte) 4 druckbare zeichen mit einem Schwung ausgeben.
Eine einfache Schleife sollte es tun ;-) Das struct-Modul hilft dir vielleicht auch weiter.

Re: wer kann diese python-routine mal umsetzen in basic.

Verfasst: Mittwoch 3. November 2010, 12:08
von BlackJack
@funkheld: Schreib doch bitte nicht einfach nur die Sachen ab, sondern lies nach was sie tun und verstehe sie. Notfalls auch mit ausprobieren der Einzelteile. Versuch mal nachzuvollziehen was ``print int(dein_string.encode('hex'), 16)`` im einzelnen macht und wie die Zahl zustande kommt, die Du da siehst.

Zu der Frage wie man eine ganze Zahl in eine 4-Byte lange Zeichenkette umwandelt verweise ich *noch einmal* auf das `struct`-Modul.

Re: wer kann diese python-routine mal umsetzen in basic.

Verfasst: Mittwoch 3. November 2010, 12:50
von jerch
Das ist nicht gerade motivierend für uns, wenn du jede Kleinigkeit hier nachfragst und so kaum Eigeninitiative, die über das Nachfragen im Forum hinaus geht, zeigst :(

Zu Deinem jetzigen Problem: struct struct struct

oder zu Fuss :twisted:

Code: Alles auswählen

>>> f=lambda x : lambda b, h=hex(x).rstrip('L')[2:].decode('hex') : ('\x00'*(b-len(h))+h)[-b:]
>>> s='abcdefgh'         # 8 Byte breit
>>> z=int(s.encode('hex'),16)
>>> z
7017280452245743464L
>>> f(z)(8)              # Zahlenwert, Bytebreite
'abcdefgh'
SCNR

Edit: bezieht sich auf http://www.python-forum.de/viewtopic.ph ... 97#p183897
Die von mir gepostete Lösung war als Antwort auf Deine "mit einem Schwung"-Anfrage gedacht, mit Augenzwinkern und nicht zum Abschreiben.
Selbst für eine eigene Variante von Dir ohne 'struct' sind hier im Prinzip schon alle nötigen Funktionen genannt wurden, zusammen mit Deinem Wissen um Character(Byte)- und Zahlenrepräsentation ist das doch nur noch ein Schleifenkonstrukt mit Division- und Modulo-Rechnung weit entfernt.