Entwickler-Ecke

Sonstiges (Delphi) - "Falschherumes" abspeichern im binärformat


Mortal-Shadow - Di 18.11.08 22:51
Titel: "Falschherumes" abspeichern im binärformat
Mir ist folgendes Aufgefallen:

Delphi-Quelltext
1:
2:
3:
4:
setlength(mystring,2);
PWord(@mystring[1])^ := $4711;
For count1 := 1 to length(mystring) do
     memo1.lines.append(IntToHex(Ord(mystring[count1]),2)+ #32); // hex-Wert + Leerzeichen

ergibt als Ausgabe:
11 47.

Also gerade verdreht.
Heist das, dass der Computer Daten "verkehrt" herum abspeichert?
Also wir schreiben eine 3 im Binärformat ja: ...00011;
Sind sie im Computer nun als: 11000... abgespeichert?
Wenn ja, warum diese Diskrepanz?
Wenn nein, warum der Zahlenverdreher?

Gruß, MS.


BenBE - Di 18.11.08 22:58

Siehe Little Endian und Big Endian in der Wiki ;-)


Xentar - Di 18.11.08 23:00
Titel: Re: "Falschherumes" abspeichern im binärformat
user profile iconMortal-Shadow hat folgendes geschrieben Zum zitierten Posting springen:
Heist das, dass der Computer Daten "verkehrt" herum abspeichert?

Jein.

user profile iconMortal-Shadow hat folgendes geschrieben Zum zitierten Posting springen:
Also wir schreiben eine 3 im Binärformat ja: ...00011;
Sind sie im Computer nun als: 11000... abgespeichert?

Nein.

Die Reihenfolge wird Byte-weise vertauscht. Ein Byte ist immer "richtigrum".
Siehe
http://de.wikipedia.org/wiki/Little_endian


Mortal-Shadow - Di 18.11.08 23:11

Ah, ok - vielen Dank für den Link.