更多精彩文章请关注公众号『大海的BLOG』

字节序理解

字节序其实就是数据在内存中的存储方式,因为内存的地址用高低位之分,数据也有高低位,所以按照存放的顺序一般可分为大端字节序,和小段字节序。

生活中我们放东西的顺序也是不一样的,有的人习惯性的将自己的物品放在自己的左手边,有的人就习惯性的放在自己的右手边,那对于电脑来说,cpu的不同,内存存储多字节数据的存储方式也相应的不同。

概念

主机字节序

不同类型CPU主机中,内存存储多字节整数的方法不同,称为主机字节序

主机序列有两种
小端序 :数据的低字节存放在内存的低地址
大端序 :数据的高字节存放在内存的低地址

一般 inter处理器的字节序为 小端序, 而 ARM 架构的处理器多为大端序

验证主机字节序

C语言代码片

#include <stdio.h>

//定义一个共用体
union Data
{
    int a;
    char b;
};

int main()
{
    union Data data;
    data.a = 0x12345678;
    //小端序
    if (0x78 == data.b)
    {
        printf("the little end sequence\r\n");
    }
    //大端序
    else
    {
        printf("the big end sequence\r\n");
    }
    return 0;
}

编程结果

inter处理器

运行代码的电脑是inter处理器的,验证为小端序存储

更多精彩文章请关注公众号『大海的BLOG』


学习中...