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 ?