¿Cómo se almacenan los datos a nivel de bit de acuerdo con "Endianness"?

Leí sobre Endianness y entendí las sentadillas ...

así que escribí esto

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 era igual aA5 B9 BF 9F

y puntero (byte) "caminar"o / p era9F BF b9 A5

así que entiendo que los bytes se almacenan al revés ... ok.

~

así que ahora pensé cómo se almacena a nivel BIT ...

Quiero decir, ¿está "9f" (1001 1111) almacenado como "f9" (1111 1001)?

así que escribí esto

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<<" - ";
   }
}

Me sale algo al azar

incluso para nos. como "32" No entiendo nada sensato.

por qué ?

Respuestas a la pregunta(5)

Su respuesta a la pregunta