当前位置: 首页 > news >正文

大端与小端

大端(Big-Endian)和小端(Little-Endian)是计算机存储多字节数据时采用的两种字节序(Byte Order),主要区别在于多字节数据在内存中的存储顺序。

一、核心区别

大端(Big-Endian)

高位字节存于低地址,低位字节存于高地址。例如,对于 32 位整数0x12345678(十六进制):

  • 高位字节:0x12(最高位)
  • 内存地址从低到高存储:0x12 → 0x34 → 0x56 → 0x78

小端(Little-Endian)

低位字节存于低地址,高位字节存于高地址。同样对于0x12345678:

  • 低位字节:0x78(最低位)
  • 内存地址从低到高存储:0x78 → 0x56 → 0x34 → 0x12

二、用法场景

大端的典型应用

网络协议(如 TCP/IP):网络字节序规定为大端,确保不同架构设备通信时数据一致。
部分嵌入式系统和老式硬件(如 PowerPC、SPARC)。

小端的典型应用

x86/x64 架构的 CPU(如 Intel、AMD):主流 PC 和服务器常用。
多数操作系统(Windows、Linux x86)默认采用小端

优劣势对比

img

三、如何判断系统字节序?

通过代码检测

#include <stdio.h>int main() 
{int num = 0x12345678;char *p = (char*)&num;if (*p == 0x78) {printf("小端(Little-Endian)\n");} else if (*p == 0x12) {printf("大端(Big-Endian)\n");}return 0;
}
http://www.gsyq.cn/news/18458.html

相关文章:

  • 一生一芯学习:基础设施(2)
  • 基于selenium的网页自动搜索
  • MacOS Nginx
  • 缓存的击穿、雪崩、穿透在你项目中的场景是什么
  • [WC2021] 表达式求值
  • 苍穹外卖第三天(Swagger、@RequestParam和@RequestBody的使用场景、@PostMapping和@RequestMapping的区别、对象属性拷贝、@Insert注解)
  • Hyper Server 2019安装I226-V网卡驱动
  • CF1209H tj
  • HTML学习日记
  • 10.10每日总结
  • 二分图与网络流 Trick
  • 10月10号
  • 10/10
  • 数论(未完)
  • 没做完的题
  • 星星充电一面
  • 智能防御,安全赋能:AI-FOCUS 滤海AI DLP 化解外部 AI 风险
  • VS code 中代码补全 自动补全函数括号
  • abc 408 d~f
  • 2025.10.10总结 - A
  • [Flutter] Flutter APK构建签名并推广到Github workflow
  • YOLOv11的神经辐射场(NeRF)辅助训练-(通过合成视角增强内容多样性)
  • 题解:AT_arc138_f [ARC138F] KD Tree
  • SP33 TRIP - Trip 个人题解
  • 经营不是老板一个人的事 - 智慧园区
  • Codeforces Round 1051 (Div. 2)[A ~E]
  • 【Azure APIM】解答REST API实现禁用自签名证书的证书链验证中的backends参数值从那里取值的问题?
  • 2025 AI 进化图谱:技术突破、场景落地与产业重构 - 指南
  • 题解:P14065 [PO Final 2022] 对弈 / Laserschack
  • CF2064E Mycraft Sand Sort