大端vs小端

还是从一道面试题讲起(最近在准备实习啊,摔)


之所以是可能有俩个答案,是由于一般计算机都是小端,一般IBM的都是大端,不同机器导致不同的存储格式


那么这道题中如果我用数组来存储四字节的a,假设起始地址为0x4000、0x4001、0x4002、0x4003分别对应着数组的从低字节到高字节

(这样说可能不大明白,先看懂这个再继续往下看,现在定义大小为4的字符数组char a[4],那么a[0]是低地址,a[3]是高地址,就是说对于数组来说,索引越大,地址越高


那么对于这道题来说,0x20150810

这就是内存里的存储形式


好了继续,题目中b和c都是俩个字节,a是四个字节,也就是把a拆成俩个部分分别放置,然后打印输出。

首先低地址字节赋给b,高地址字节赋给c

恩,那么打印输出会怎么输出呢,记住,无论大小端,按照高字节优先输出而不是高地址,于是乎,见上面我写的那张图,结合我下面写的文字理解就能懂了

那么 

大端格式下 : b对应着0x2015 c对应着0x0810

小端格式下 : b对应着0x0810 c对应着0x2015

问题分析完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值