一般在计算机中数据指针取到的都是该数据存储的起始位置的地址。比如 int a;它在32位下占据4字节。现在有一个int *p = &a;那么将会取到该数据在内存中存放的起始地址。
那么数据在内存中到底是从起始地址开始排列还是从末尾地址开始排列。这就牵扯到了数据到底是大端模式存储还是小端模式存储。
可以看到在INTEL的x86下是小端模式,而IBM,摩托罗拉,惠普等是大端模式。
目前Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端——可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据普遍采用的都是大端