big/little endian / bit reihenfolge im byte...
-
hi!
musste mich jetzt erstmalig mit big bzw. little endian beschäftigen...jetzt frage ich mich, ob die unterschiede auf verschiedenen rechnerarchitekturen sich auch auf die bits in einem byte beziehen??
wo ist beim intel rechner denn das least significant bit??
rechts oder links?
-
nein die bits in einem byte sind immer big endian angeordnet
-
-
Aah! big endian...
das beruhigt mich irgendwie...
-
Wie möchte man das denn herausfinden?
-
is festgelegt
-
Jo, ist halt mit C++ Mitteln nicht feststellbar.
-
Kann man schon feststellen, allerdings nicht zur Compiletime (mit standard-c++).
-
Any schrieb:
Kann man schon feststellen, allerdings nicht zur Compiletime (mit standard-c++).
Reicht auch zur Laufzeit. Wie?
-
// Boby Thomas Pazheparampil // April 2006 bool IsLittle() { int iTmp = 1; if(*(char *)&iTmp == 1) return true; else return false; }
-
das mit den bits kann man nicht herausfinden.
-
PeterTheMaster schrieb:
das mit den bits kann man nicht herausfinden.
was bei bits?
-
kingruedi schrieb:
PeterTheMaster schrieb:
das mit den bits kann man nicht herausfinden.
was bei bits?
Ob die little oder big endian oder sonst was sind.
Nehmen wir an wir haben eine Platform auf der Nibbles die Basiseinheit sind. Ein Byte sind 8 Bits und diese sind im Speicher so angeordnet:
45670123
Ein 0x0A sieht dann im Speicher so aus:
00000101
Und ein 0xC1 hat die Form:
00111000
Wie möchtest du mit C/C++ Mitteln das nun herausfinden?
-
das geht schon mit assembler nicht. das waere eine reine metainformation aus der hardwaredoku. man koennte behaupten, irgendwelche shift- oder rotate befehle koennten das ueberpruefen, aber die wuerden natuerlich so implementiert sein, dass sie sich trotzdem so verhalten, wie man erwartet. es gibt eben keine moeglichkeit, bits direkt zu adressieren, bytes sind speicheradressenmaessig die atome.