大小端字节序

内存逻辑上是一个大的字节数组,当存储大于一个字节的数据时就有字节序的问题。


bytes order.png

大小端经常弄混,这里有种简单的记忆方法
大端 <-> 大尾端 <-> 高尾端
小端 <-> 小尾端 <-> 低尾端

看数据的尾部(这里是 0x67) 是存在内存的高地址还是低地址。当尾部存在高地址时就是高尾端(大端),否则是低尾端(小端)。

当然判断自己的电脑是大端还是小端也很简单,给一个多字节数据看看它的起始字节(内存低地址)存的是什么就行了

#include<stdio.h>

int main() {
    int a = 0x01234567;
    char *p = (char *)&a;
    // *p = 0x67 时是小端, *p = 0x01 时是大端
    printf("%x\n",*p);
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容