大端和小端模式详解
前言
对于不了解的看到或者听到“大端”、“小端”就如我一样可能就会很懵,不知道是啥?网上很多文章看的是眼花缭乱,云里雾里,所以本人决定自己写一篇让和我一样经历困惑的人,能够更容易了解。如有错误或不对的地方还请各位大佬们见谅,本人才疏学浅,也希望大佬们多多指出不对的地方。好了,废话不多说开搞。。。
1.大端和小端由来起源
一个小故事,想知道的自己可以去搜索,这里就不讲了
2.什么是大端和小端?
首先先放含义(看不懂没关系直接去看解释),然后在做解释什么是高位字节低位字节,高地址端低地址端,然后在看大小端的一个实例
2.1大端、小端含义
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,数据从高位往低位放;这和我们的阅读习惯一致。
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
**大端**:大端模式是低位字节排放在内存的高地址端,高位字节排放在内存的低地址端。
**小端**:小端模式是高位字节排放在内存的高地址端,低位字节排放在内存的低地址端。
这里本人干脆就记着 低对低,高对高 是小端,其余的就是大端(低对高 高对低),大端模式比较才是我们大家直观上认为的模式。
2.2 高位字节、低位字节
我们都知道计算底层只能够识别“0”和“1”,所有的代码在底层最终会变成一位位“0”或者“1”组成的代码,这些一位位“0”或者“1”我们就称之为二进制代码。
我们所看到的字符或者数字等,其实在计算机底层还是会转变成计算机识别的语言,也就是“0”和“1”组成的二进制代码(不懂得可以去搜看一下计算机进制相关资料二进制、八进制、十六进制)。

好了,上面废话了那么多,下面进入正题,我们众所周知 1个字节(byte)对应8位(bit),那什么是高位字节什么是低位字节(请看下图)?

2.3 高地址、低地址
地址比较正式含义这里就不介绍了,有兴趣可以自行查找。高地址、低地址看下图

2.4大端、小端怎么看
废话不多说上图




浙公网安备 33010602011771号