小端

数据在内存中是以小端字节序存储的,何为小端,就是小地址存放数据低字节。小端字节序又称逆序

如数值0x00000001 在内存中存储如下, buf[0] = 0x01, buf[1] = 0x00, buf[2] = 0x00, buf[3] = 0x00, 小地址 buf[0] 存放了数据的最低位01。01 00 00 00 这种字节序人眼阅读起来是反的,所以又称逆序。

大端

协议中一般用大端,目的是方便阅读,如数值1用大端表示为 00 00 00 01,大端字节序又称顺序

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
    /* 数据在内存中是以小端字节序存储的,何为小端,就是小地址存放数据低字节。小端字节序又称逆序存储 */
    /* 如数值0x00000001 在内存中存储如下, buf[0] = 0x01, buf[1] = 0x00, buf[2] = 0x00, buf[3] = 0x00, 小地址 buf[0] 存放了数据的最低位01 */
    unsigned char buf[4] = {0x01, 0x00, 0x00, 0x00};

    printf("buf[0] = 0x%02X\n", buf[0]);

    /* 协议中一般用大端,目的是方便阅读,如大端表示1如下 00 00 00 01 */

    return 0;
}
liyongjun@Box:~/project/my/c/study$ ./大小端.out 
buf[0] = 0x01