读书人

请星星来解释下这段程序的运行结果什么

发布时间: 2012-02-06 15:52:45 作者: rapoo

请星星来解释下这段程序的运行结果什么是: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 ;
会让你看得清楚点。

读书人网 >C++

热点推荐