Stefan ⛄ F. schrieb:
> Wenn du ein C Programm ändern willst, musst du C lernen.
Wo steht denn, das der TO ein C-Programm ändern will.
Soweit ich es verstanden habe, soll aus zwei Byte einer Log-Datei, die
ein Word repräsentieren, der Wert dieses Word berechnet werden.
@Max: Falls das so nicht stimmt, bitte korrigieren. Für die Zukunft:
Versuche Dein Problem möglichst so zu beschreiben, dass ein vollkommen
Unbedarfter Dir sinnvoll antworten kann.
Ich versuche mich mal an einer Lösung:
Gegeben: zwei Zahlen in Hex-Darstellung:
Z1: ab (z.B. 2A)
Z2: cd (z.B. 0F)
Zunächst wandelt man die beiden Zahlen mal in Dezimalzahlen um. Dazu
muss Du noch wissen, das die Ziffern A bis F den Wert 10 (A) bis 15 (F)
haben. Zu Not einfach mal mal im Lexikon Deiner Wahl nachschauen
("hexadezimal" als Suchwort sollte helfen). Dann ermitteln wir den
Dezimalwert der beiden Zahlen:
Z1= (a * 16) + b (Beispiel: 2*16 + 10 = 42)
Z2= (c * 16) + d (Beispiel: 0*16 + 15 = 15)
Jetzt kommt es darauf an, welche der Beiden Zahlen der höherwertige Teil
Deiner gesuchten Word-Variablen ist (nennt sich auch High-Byte). Das
hängt von der Ablage-Art des erzeugenden Programms ab, welche die
Log-Datei erzeugt hat. Es gibt da zwei Möglichkeiten:
a) Z1 ist High-Byte
oder
b) Z2 ist High-Byte
Allgemein muss man rechnen:
High-Byte * 256 + Low-Byte ergibt den gesuchten Wert.
Bei menem Beispiel:
a) Wert = (42 * 256) + 15 = 10767
b) Wert = (15 * 256) + 42 = 3882
Jetzt sollte hoffentlich alles klar sein.
Und an alle anderen Helferlein:
Wenn ihr nicht helfen wollt, lasst doch das rumätzen. Schubsen in die
richtige Richtung ist ja OK. Aber es ist doch klar zu erkennen gewesen,
dass der TO ein blutiger Anfänger ist. Also an die Hand nehmen oder
Finger ewg von der Tastatur!!
Grüße
Hoschti