大小端

小端存储:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,存储模式将地址的高低和数据位权有效地结合起来。

大端存储:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,大端存储符合我们对数据的认识

图示

以32位系统,以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit,以十进制数123321为例,转化为二进制为0000 0000 0000 0001 1110 0001 1011 1001

更直观地表示为16进制为

如何判断计算机是大端存储还是小端存储?

判断高位地址是否储存低位数据

#include<stdio.h>
int main() {
short int x = 1;
char *c = (char*)&x;//对x取地址,取第一个高位地址
if (*c) {//判断高位地址是否储存低位数据
printf("小端 (Little Endian)\n");
} else {
printf("大端 (Big Endian)\n");
}
return 0;
}

一般计算机普遍采用小端存储