首页 热点资讯 义务教育 高等教育 出国留学 考研考公

大小端字节序存在的意义,为什么不用一个标

发布网友 发布时间:2022-04-22 01:27

我来回答

1个回答

热心网友 时间:2024-03-12 16:09

大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中(网络上一般都是采用大端模式)
小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中
例如
int a =1;
为0x 00 00 00 01,一个有32bit,4个Byte,内存地址是连续的,如在起始地址为0x400001的内存地址中,
在大端模式下
第一位为0x00(地址为0x400001)
第二位为0x00(地址为0x400002)
第三位为0x00(地址为0x400003)
第四位为0x01(地址为0x400004),高地址保存低字节。
在小端模式下就相反。

在C语言中,关键字union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有 相同的起始地址 。例子如下:
union StateMachine
{
char character;
int number;
char *str;
double exp;
};

一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是double 型态,所以StateMachine 的空间大小就是double 数据类型的大小。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com