大端和小端模式
什么是大端什么是小端模式:
大端:将表示一个对象的字节在内存中按照从最高有效字节到最低有效字节的顺序存储,即最高有效字节在内存地址最前面的方式,称为大端法。
小端:将表示一个对象的字节在内存中按照从最低有效字节到最高有效字节的顺序存储,即最低有效字节在内存地址最前面的方式,称为小端法。
如何通过代码判断大小端:
方法一:
#include <stdio.h> #include <stdlib.h> int main() { int x = 0x01234567; for (int i = 0; i < sizeof(int); i++) printf("%.2x ", ((char *)&x)[i]); printf("\n"); if (((char *)&x)[0] == 0x67) { printf("little endian!\n"); } else if (((char *)&x)[0] == 0x01) { printf("big endian\n"); } }
方法二:
此方法请参考《C零散知识点汇总之union关键字》来理解。
int checkSystem( ) { union check { int I; char ch; } c; c.i = 1; if (c.ch == 1) { printf("little endian!\n"); } else { printf("big endian!\n"); } }