请星星来解释下这段程序的运行结果什么是:120 86 52 18
#include "stdafx.h "
#include <iostream>
#include <string>
using namespace std;
void main()
{
unsigned int finder = 0x12345678;
unsigned char buff[4] = {0,0,15,1};
for (int i=0 ;i < sizeof(int) ;i++)
{
unsigned char a = (((unsigned char*)&finder)[i]);
cout < < (unsigned int)a < < endl ;
}
}
[解决办法]
little endian的机器上是78 56 34 12
big endian的机器上是12 34 56 78
当然,上面的数都是16进制,输出的时候会被转化为10进制
[解决办法]
cout < < std::hex < < (unsigned int)a < < endl ;
会让你看得清楚点。