int変数のバイト表現をスキャンすると、予期しない結果が得られます。
私が行った場合
int a = 127;
cout << (unsigned int) *((char *)&a);
期待通り127になります。私が行った場合
int a = 256;
cout << (unsigned int) *((char *)&a + 1);
期待通り1になります。しかし、私がそうするなら
int a = 128;
cout << (unsigned int) *((char *)&a);
私は4294967168を持っていますが、それはまあ…かなり派手です。
問題は、値が128であるint変数の最初のバイトを見るときに128を取得する方法はありますか?