como os dados são armazenados no nível de bits de acordo com "Endianness"?

Eu li sobre Endianness e entendi agachamento ...

então eu escrevi isso

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

e ponteiro (byte) "caminhar"o / p era9F BF b9 A5

então entendi bytes são armazenados para trás ... ok.

~

então agora eu pensei como é armazenado no nível BIT ...

Quero dizer, "9f" (1001 1111) é armazenado como "f9" (1111 1001)?

então eu escrevi isso

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

Eu recebo alguma saída aleatória

mesmo para n. como "32" eu não entendo nada sensato.

porque ?

questionAnswers(5)

yourAnswerToTheQuestion