obsidian-notes/代码/大端小端.md
CSSC-WORK\murmur 3e6078442b init version
2024-04-15 11:19:57 +08:00

25 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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等为可配置