在计算机系统中,咱们是以字节为单位的,每一个地址单元都对应着一个字节,一个字节为8bit。可是在C语言中除了8bit的char以外,还有16bit的short型,32bit的long型(要看具体的编译器)。另外,对于位数大于8位的处理器,例如16位或者32位的处理器,因为寄存器宽度大于一个字节,那么必然存在着一个若是将多个字节安排的问题。所以就致使了大端存储模式和小端存储模式。windows
大端模式(big endian):数据高位存储在内存低地址,低位对应高地址 ;数组
小端模式(little endian):数据高位存储在内存高地址,低位对应低地址 ;网络
在操做系统中,x86和通常的OS(如windows,FreeBSD,Linux)使用的是小端模式。但好比Mac OS是大端模式。ARM芯片默认采用小端,但能够切换为大端;另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中倒是基于大端,好比Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据广泛采用的都是大端。测试