大端與小端
大端與小端指的是多字節(jié)的數(shù)值在內(nèi)存中的存儲形式,數(shù)值的起始存儲在內(nèi)存的高序地址則為大端牵祟,反之為小端:
“大端小端”示意圖
使用C程序進(jìn)行判斷
#include <stdio.h>
#include <cstdlib>
int main(int argc, char **argv)
{
union
{
short s;
char c[sizeof(short)];
} un;
un.s = 0x0102;
if (sizeof(short) == 2)
{
if (un.c[0] == 1 && un.c[1] == 2)
printf("big-endian\n");
else if (un.c[0] == 2 && un.c[1] == 1)
printf("little-endian\n");
else
printf("unknown\n");
} else
printf("sizeof(short) = %d\n", sizeof(short));
exit(0);
}
通過union
的內(nèi)存共享機(jī)制對un
進(jìn)行賦值旺嬉,然后判斷數(shù)組c
內(nèi)容的數(shù)值來判斷大小端