003
05.10.2004, 00:37 Uhr
Hans
Library Walker (Operator)
|
Zitat von Mr. T: |
Hello again!
Ich bräuchte eine Idee, wie ich aus einem char [x] - Feld, in dem ASCII zeichen stehen, den dazugehörigen Hexwert in dezimal auslesen könnzte. Das wäre jetzt ja zu einfach, wenn nicht:
im Feld[0] z.B.: 0xFF sthen würde und im Feld[1] dann 0xFE und die Zahl aber zusammen gehört - zu 0xFFFE. Das wäre dann ja in Dezimal 65534.
Wie kann ich das elegant umrechnen?
DANKE!
|
Hi,
das ist auch mal wieder ein Fall, wo sich meiner Meinung nach eine union anbietet:
C++: |
union { char c[sizeof(int)]; int z; }number;
|
Dann kopierst Du die Bytes aus Deinem array in die union, (richtige Stelle beachten, wenn int >16 Bit ist), und liesst sie als int wieder aus. Der Trick besteht darin, das bei der union immer auf den selben physikalischen Speicher zugegriffen wird, die Bytes aber unterschiedlich interpretiert werden. Irgendwo hier im Forum geistert auch noch ein Programm von mir herum, das diesen Effekt ausnutzt, indem es einen Text auf die Mattscheibe bringt, der in einer langen Reihe von float-zahlen codiert ist.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |