как данные хранятся на битовом уровне в соответствии с «порядком байтов»?
Я прочитал об Endianness и понял, приземистый ...
так что я написал это
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
был равенA5 B9 BF 9F
и (байт) указатель "ходитьо / п было9F BF b9 A5
так что я понимаю, что байты хранятся задом наперед ... хорошо.
~
так что теперь я подумал, как это хранится на уровне BIT ...
I означает, что «9f» (1001 1111) хранится как «f9» (1111 1001)?
так что я написал это
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<<" - ";
}
}
Я получаю какой-то случайный вывод
даже для номеров. как "32", я ничего толкового не понимаю.
Зачем ?