#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
//小端 数据高字节保存在内存高地址,地址由大向小增长
//对以下两种方法,小端输出4 3 2 1
//方法1
union {
int i;
char c[sizeof(int)];
}un;
un.i = 0x01020304;
cout << (int)un.c[0] << "\t" << (int)un.c[1] << "\t" << (int)un.c[2] << "\t" << (int)un.c[3] << endl;
//方法2
int a = 0x01020304;
char p = ((char *) &a)[0];
char q = ((char *) &a)[1];
char r = ((char *) &a)[2];
char s = ((char *) &a)[3];
cout << (int)p << "\t" << (int)q << "\t" << (int)r << "\t" << (int)s << endl;
int ttt = 0;
return 0;
}