其實只需要這樣段代碼
union UA
{
a;
char c[4];
}u;
u.a = 0x12345678;
cout << hex << (unsigned )u.c[0] << endl
<< hex << (unsigned )u.c[1] << endl
<< hex << (unsigned )u.c[2] << endl
<< hex << (unsigned )u.c[3] << endl;
如果輸出第個為 78那么就是小端 如果是12 就是大端
但是 有時候 需要在編譯期 確定 那么就需要用宏來完成:
可以根據所用cpu然后寫可移植代碼
# BYTE_ORDER
# LITTLE_ENDIAN 1234
# BIG_ENDIAN 4321
# ( BYTE_ORDER LITTLE_ENDIAN )
// then little endian
#
// then bigendian
#end
最新评论