《三分钟理解大小端》

来源:互联网 发布:java,string split方法 编辑:程序博客网 时间:2024/05/29 12:07


无论笔试还是面试都有一定几率问怎么判断大小端,那么你就很自豪的回答,大端就是数据高字节放在低地址上,小端就是数据低字节放在低地址上。好了您回答了这个恭喜下面让你代码实现一下,这个时候很多只是死记硬背的缺陷就会暴露出来。

其实代码的实现很多方法都是可以的,下面举例最简单的一种,就是初始化一个16进制的类型的数据,然后把它放在一个char类型的数组中,由于十六进制的数据一位代表四个bit位char型是8个bit位,那么十六进制的两位占一个char位,那么就可以把数据位分离。

容易搞混的概念。第一:数据的高字节 举例:0x1234 4 就是数据的高字节。第二高地址,0x1234 1 是高地址位

#include <stdio.h>int main(){    int i = 0x1122;    char *c = &i;    if(c[0] == 0x22 && c[1] == 0x11){        printf("little endian\n");    }    else if(c[0] == 0x11 && c[1] == 0x22)    {        printf("big endian\n");    }    return 0;}