大端小端
每次遇到大端小端的问题,都要想很久。效率就这样不经意地降低了。只因为理解的不透彻。
其实只需要记住一点,按照人类思考方式的就是大端模式(吃鸡蛋)。
比如:0x00000008 这个值在内存中是这样存放的:
大端:
addr : 0 1 2 3 4 -->
value: 0x00 0x00 0x00 0x08
小端:
addr : 0 1 2 3 4 -->
value: 0x08 0x00 0x00 0x00
一个C代码判断机器大小端:
int isbig_endian(void) { int a = 0x1234; char b = *(char *) &a; if(b == 0x12) { //如果低地址是高位0x12,则就是大端 printf("Big Endian\n") return 1; }else { printf("Little Endian\n") return 0; } }