大端序小端序介绍
- 大端字节序是指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处。
- 小端字节序是指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处。
代码检测
#include <stdio.h>
void byteorder() {
union {
short value;
char union_bytes[ sizeof(short)];
} test ;
test.value = 0x0102;
if ((test.union_bytes[0] == 1) && (test.union_bytes[1] == 2)) {
printf("big endian\n");
} else if ((test.union_bytes[0] == 2) && (test.union_bytes[1] == 1)) {
printf("little endian\n");
} else {
printf("unknown...\n");
}
}
int main() {
byteorder();
return 0;
}
Ubuntu24.04上输出结果为little endian。现在PC大多采用小端字节序,因此小端字节序又被成为主机字节序。