#include<iostream>

using namespace std;


int main(void)

{

        int num=0x010203;

        char * ptr=reinterpret_cast<char*>(&num);


        for(int i=0; i<sizeof(num); i++)

                cout<<static_cast<int>(*(ptr+i))<<endl;

        return 0;

}




프로그램을 돌려보면 출력결과는 3210이 나오게 된다.


0123이 아닌 3210이 나오는 이유는, 리틀에디안과 빅 에디안의 차이점에서 나온다.


http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html


예를 들어 헥스값이 3A4025가 있다고 하면


빅에디안에서는 이를 3A4025로 저장한다.


반면 리틀에디안에서는 이를 25403A로 저장한다.


즉 리틀에디안에서는 뒤에서부터 1byte씩 잘라서 저장을 하는셈





Posted by huammmm1
,