关于大小端的个人理解

常见的二进制代码存储在内存中时一共有两种方式: 大端存储 小端存储

以32位机器为例
unsigned int a = 0x12345678;
我们知道计算机在内存中存储的是二进制代码,大小端存储分别如下图所示:

内存地址:低地址------------->------------->------------->------------->高地址
小端:/0x780x560x340x12/
大端:/0x120x340x560x78/

这其中,大端存储方式和我们的阅读习惯相同,可以直接读作12345678

而小端,则与我们的逻辑习惯相同.高地址上存更加重要的数据.自我理解如下:

我们把0x12345678看成是在网络游戏中的dps,那么12000000就是我们最重要的输出伤害.后面345678加起来也没有前面一位输出来的高.因为进位了.


以下纯粹是个人猜测(完全可以不看!):
为什么会产生这样两种存储方式,既然我们阅读习惯是大端,普通人也可以清楚的理解大端存储的数据内容.为什么还要添加小端存储这种看起来有些扭曲的存储方式?

计算机读取内存数据从低地址向高地址读取?如果是这样,最重要的数据放在最后来读以降低错误率?否则我无法知晓为什么会出现截然不同的两种方式来存储一段相同的数据.业界顶端大佬的恶趣味?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值