moin,
Ok, ein kleiner Test
DWORD b = -1; unsigned char *oct = (unsigned char*)&b; printf("%x %x %x %x", oct[0], oct[1], oct[2], oct[3] );
ff ff ff ff
das ist jetzt kein sonderlich guter Test.
Na doch, er will ja wissen, wie
b
intern dargestellt wird.
Ja, und die Byteorder natürlich. Das alles wird ja erst interessant wenn Daten nach draußen gehen, also in Dateien, Sockets, stdout usw. Erst da spielt ja die ByteLength ein Rolle, wieviel Bytes hingegen im Speicher belegt werden ist heutzutage weniger interesant.
So dient die Typisierung hauptsächlich dazu, Daten portabel zu machen, das gilt für integer genauso wie für float Typen.
Also egal ob mit C eine FPNR in ein Socket geschrieben wird oder dieselbe floating Point Number mit Perl und pack()-Schablone f
die Bytesequenz ist genau dieselbe.
Und was die Byteorder betrifft: Dafür gibt es eine Festlegung, nämlich die, daß der BigEndian die sog. Networkorder beschreibt. Net -- das ist das was uns verbindet.
MfG