大端小端法

01引言

1.什么是字节序?

字节序,顾名思义,就是多字节对象在内存中的存储顺序,那么什么时候讨论字节序呢?仅当讨论“原子化“的数据且字节数大于1时讨论字节序(打开一个文件时为字节流,不需要讨论字节序)

2.计算机怎么存储?

计算机在内存中存放的顺序是从低地址到高地址(不论大端小端法都按照这个方式存储)并且以字节(byte)也就是8位(bit)以基本存储单位存储。

3.什么是高/低字节?

高字节即最高有效字节(MSB),低字节即最低有效字节(LSB)。如:0X12345678 从高位到低位的字节依次是:12、34、56、78

目前有两种不同的存储方案,大端法和小端法。现代处理器大多为双端法,大小端都支持,可以配置称大端法或者小端法。

02大/小端法

  • 基本概念

    大端法:高字节在前,即高字节存放在低地址

    小端法:低字节在前,即低字节存放在低地址

    以0x12345678为例

大端法:MSB(最高有效字节)在前
内存地址0x0010x0020x0030x004
存储数据0x120x340x560x78
小端法:LSB(最低有效字节)在前
内存地址0x0010x0020x0030x004
存储数据0x780x560x340x12
03怎么判断我的机器是大端法还是小端法?
#include<stdio.h>
union store//联合体,共占一片内存
{
    int data;
    char  strr[sizeof(int)];
};
int main()
{
    store test;
    test.data = 0X01020304;
    if(test.strr[0] == 4  && test.strr[3] == 1)
        printf("小端法\n");
    else if(test.strr[0] == 1 && test.strr[3])
        printf("大端法\n");
    else
        printf("不能判断\n");
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值