字节序----大端序和小端序

本文详细介绍了大端和小端两种字节序的概念及其在内存中的存储方式,并通过一个简单的 C 语言示例演示了如何判断当前系统采用的是哪种字节序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


大端序 (big endian ):最高有效字节存储在最低低至,随地址升高,字节的权重降低。

小端序(little endian): 最低有效字节存储在最低地址,随地址升高,字节的权重升高。


比如说一个int型数字a为0x1234,那么0x12代表a的高位,0x34代表a的低位(类似十进制里面百是高位,十是低位)

计算机的数据存储是以字节为单位的,因此0x12和0x34分别代表两个字节

假设内存地址从左到右是低位到高位

对于小端在内存中的存储为: 3412(低地址存储低位)

对于大端在内存中的存储为:1234(低地址存储高位)

对比发现大端的存储跟书写方式是一致的。


见下表:

字节0123类型
小端0-78-1516-2324-32int
大端24-3216-238-150-7int


C测试代码:

#include <stdio.h>

union test
{
    int  a;
    char b;
}test;

int main(void)
{

    test.a = 1;

    if(1 == test.b)
    {
        printf("little endian!\n");
    }
    else
    {
        printf("big endian!\n");
    }

    return 0;
}
~   

巧妙运用联合体共用同一内存来进行测试!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值