什么是字节序:
计算机在存储多字节数据时,需要将多字节分开,将按照一定的顺序存储就是字节序。
大端:数据高端存储在地址低端(地址的起始位置),数据低端存储在地址高端。
如平常读一个较大的数987(九百八十七),先从开始位置读最大的位。
小端:数据低端存储在地址低端,数据高端存储在地址高端。一般计算机都是小端存储。
共用体求本机大小端:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
union
{
int a;
char arr[4];
}daxiaoduan;
int main(int argc, const char *argv[])
{
daxiaoduan.a=0x12345678;
if(daxiaoduan.arr[0]==0x78)
{
printf("小端存储\n");
printf("arr[0]:%0#x\n",daxiaoduan.arr[0]);
printf("arr[1]:%0#x\n",daxiaoduan.arr[1]);
}
else if(daxiaoduan.arr[0]==0x12)
{
printf("大端存储\n");
printf("arr[0]:%0#x\n",daxiaoduan.arr[0]);
printf("arr[1]:%0#x\n",daxiaoduan.arr[1]);
}
return 0;
}