我扫描了一个 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?