● 大端存储(Big Endian)还是小端存储(Little Endian)
大端小端的说法来源于一个具有讽刺意味的小说。说的是有两个党派争论从哪一头敲破鸡蛋更好,一党坚持从小端敲破鸡蛋更好,即 Little Endian,而另一党则认为从大的一端敲破鸡蛋更好,即 Big Endian。
在计算机中,若某个数据需要多个字节进行存储,则在小端存储模式下,数据的高字节(即高位)保存在内存的高地址中,而数据的低字节(即低位)则保存在内存的低地址中;大端存储模式下,数据的高字节(即高位)保存在内存的低地址中,而数据的低字节(即低位)则保存在内存的高地址中。简单而言,小端模式为“高字节存高地址,低字节存低地址”,大端模式为“高字节存低地址,低字节存高地址”。
一般的计算机系统,通常使用小端存储。判断使用的计算机是大端存储还是小端存储,可用下面代码判断。
#include <bits/stdc++.h>
using namespace std;union Data {int x;char y;
} u;int main() {u.x=1;if(u.y==1) {printf("%s", "little endian");} else {printf("%s", "big endian");}
}
● C\C++ 语言中不同数据类型所占字节数及代码验证详见:
https://blog.csdn.net/hnjzsyjyj/article/details/139237096