大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中;
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中;
下面给出一种常规的判断计算机是大小端的一段代码
#include<stdio.h> int main(void){ int a=0x12345678; char *pc = (char*)&a; if(*pc==0x78){ printf("该计算机为小端序\n"); }else{ printf("该计算机为大端序\n"); } int i = 0; for(i=0;i<4;i++){ printf("%#x \n",*(pc+i)); } return 0; }
上面的这段代码比较常规也比较复杂,下面这个是用共同体所写的:
#include<stdio.h> /*下面这段代码是利用共同体union所写的求计算机是大端还是小端*/ union daxiaoduan{ int a; char b; }; int main(void){ //这是定义一个 共同体 union daxiaoduan 是数据类型 union daxiaoduan u1; u1.a = 0x12345678; printf("%#x\n",u1.b); if(u1.b == 0x78){ printf("该计算机为小端序\n"); }else{ printf("该计算机为大端序"); } return 0; }