大小端的区别以及各自的优点,哪种时候用
所谓的大端模式,是指数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
所谓的小端模式,是指数据的低位保存在内存的低地址中,而数 据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
不同类型CPU的主机中,内存存储多字节整数序列有两种方法,称为主机字节序(HBO),即小端字节序。
1、小端序(little-endian):
- 存储数据是先存最低有效位。
- 低序字节存储在低地址,Intel、AMD等采用的是这种方式。
2、大端序(big-endian):
- 存储数据是先存最高有效位。
- 高序字节存储在低地址,ARM、Motorola等所采用。
网络中传输的数据必须按网络字节序,即大端字节序。
当应用进程将整数送入socket前,需要转化成网络字节序;当应用进程从socket取出整数后,要转化成主机节序。