Featured image of post 小端序

小端序

一种多字节数据在内存中的存储方式,将低位字节放在低地址处,高位字节放在高地址处,让数据的低位部分优先存储,便于计算机从低位开始进行算术运算

小端序理解:把“小的一头”(序列尾部)放在最前面

数字“42”

“十位”(4)在左边,“个位”(2)写在右边,先写大数,后写小数的习惯,叫大端序。

小端序则是反过来,先把“个位”(2)写左边,再把“十位”(4)写在右边

计算机采用小端序的原因:方便计算机做加减法。

详细解释:

​ 计算机内存由连续编址的存储单元组成,每个存储单元位宽1字节(8bit),可以存储0~255范围内的整数。若数值超出单字节存储范围(例如:1234),计算机就会采用多字节数据类型,将数值拆分至多个连续的字节存储单元中保存

  • 按**人类习惯(大端序)**存:先找第一个格子放 12,再找下一个格子放 34。
  • 按小端序存:先找第一个格子放 34(小的一端),再找下一个格子放 12(大的一端)。

加法竖式是从个位(最右边)开始算,计算机的CPU也是这么算数的,它必须从**“小的一端”**开始运算。

如果内存里用的是大端序(大数在前),CPU想算加法,就得先跑到内存的末尾找到“个位”,算完再倒着往前找“十位”——这很麻烦,像倒着走路。

如果内存里用的是小端序(小数在前): CPU拿到第一个格子,里面就是“个位”,直接开始算。算完个位,顺手拿第二个格子算十位……一路顺着往前加就行了,不用来回跑。

恍如昨日,嗤笑今朝
使用 Hugo 构建
主题 Stack 由 Jimmy 设计
{/* Fonts are self-hosted: see layouts/partials/head/custom.html */}