obsidian-notes/代码/大端小端.md

25 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2024-04-15 03:19:57 +00:00
---
title: 大端小端
updated: 2022-05-16 09:21:27Z
created: 2022-01-14 00:12:17Z
---
# 含义
大端big endlian和小端little endian属于字节序。 [位序](位序.md)
> 只有读取的时候,才必须区分字节序,其它情况都不用考虑//==有待验证==
内存地址由低到高,从左往右,与人类阅读顺序一致。
## 理解
在几乎所有的机器上,多字节对象都被存储为连续的字节序列,并从地址位开始存储。==先存储多字节数据的低位即为小端small先存储高位即为大端big==。
## 大端字节序:
认为第一个内存地址字节是数据为最高位字节,即大端即高字节存在低地址位,低字节存在高地位,故==在从左往右的阅读习惯下,数据视觉上是一致的==,即存储后的字面数据值与实际数据一致。
0xABCDEF在内存中即为0xAB|0xCD|0xEF
## 小端字节序:
认为第一个字节存储低位,如此内存中数据字面数值与实际数值相反。
故在从左往右的阅读习惯下,数据视觉上是==相反的==。
0xABCDEF在内存中即为0xEF|0xCD|0xAB
# 场景
x86等多是小端
ARM等为可配置