大小端
小端
数据在内存中是以小端字节序存储的,何为小端,就是小地址存放数据低字节。小端字节序又称逆序。
如数值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