Wie werden Daten auf Bit-Ebene gemäß "Endianness" gespeichert?
Ich habe über Endianness gelesen und Squat verstanden ...
so schrieb ich dieses
main()
{
int k = 0xA5B9BF9F;
BYTE *b = (BYTE*)&k; //value at *b is 9f
b++; //value at *b is BF
b++; //value at *b is B9
b++; //value at *b is A5
}
k
war gleichA5 B9 BF 9F
und (Byte) Zeiger "gehe "o / p war9F BF b9 A5
so ich bekomme es Bytes werden rückwärts gespeichert ... ok.
~
so jetzt dachte ich, wie es auf BIT-Ebene gespeichert ist ...
I bedeutet, dass "9f" (1001 1111) als "f9" (1111 1001) gespeichert ist?
so schrieb ich dieses
int _tmain(int argc, _TCHAR* argv[])
{
int k = 0xA5B9BF9F;
void *ptr = &k;
bool temp= TRUE;
cout<<"ready or not here I come \n"<<endl;
for(int i=0;i<32;i++)
{
temp = *( (bool*)ptr + i );
if( temp )
cout<<"1 ";
if( !temp)
cout<<"0 ";
if(i==7||i==15||i==23)
cout<<" - ";
}
}
Ich erhalte eine zufällige Ausgabe
even für nos. wie "32" bekomme ich nichts vernünftiges.
Warum