大小端模式

大小端的由来

当数据类型为int,在32bit的系统中,它需要占用4个字节(32bit),这个时候就会产生这4个字节在寄存器中的存放顺序的问题。比如int x = 0x12345678。具体的该怎么存放呢?这个时候就需要理解计算机的大小端的原理了。

图解大小端

06f9bf2f-3f43-464c-a1d7-b6b011c794d6[4]

大小端主要看低地址存放的是高字节还是低字节

低地址中存储的是高字节位,为大端模式

低地址中存放的是低字节位,为小端模式

大小端存储说明

【注】不管是大端法还是小端法存储,计算机在内存中存放数据的顺序都是从低地址到高地址,所不同的是首先取低字节的数据存放在低地址还是取高字节数据存放在低地址。

大端法和小端法指的是字节在内存中存储时的排列规则,而不是数据中的位的排列规则。也有以位序排列的机器,但很少见。另外,再次明确一下,大端法或小端法是数据在存储时的表现,而不是在寄存器中参与运算时的表现。

编写程序测试系统的大小端

#include<stdio.h>
int main(void)
{
    unsigned int x=0x12345678;
    unsigned char *p=(unsigned char*)&x;
    printf("%0x %0x %0x %0x\n",p[0],p[1],p[2],p[3]);
    return 0;
}

运行结果是:

88c071df-554c-4d94-9eac-27ddc25b08d2

说明Linux采用小端模式

转载于:https://www.cnblogs.com/WindSun/p/11284130.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值