エンディアンネスについて読んで、スクワットを理解しました...
だから私はこれを書いた
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
および (byte)pointer " walk " o/p は9F BF b9 A5
バイトが逆に保存されていることがわかりました...わかりました。
〜
だから今、ビットレベルでどのように保存されているかを考えました...
「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」のように、私は賢明なことは何も得られません。
なぜ ?