当前位置: 首页 > 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.hskmm.com/?act=detail&tid=28304

相关文章:

  • 【黑马python】2.Python 字符串
  • 实验报告2(简单实现图书馆管理系统)
  • 实验报告1(switch语句,二维数组)
  • 【实现自己的 kafka!】kafka 的关键概念
  • 12. 对话框
  • 2024ICPC区域赛香港站
  • AI产品经理要了解的算法有哪些?
  • 一位印度小哥逆袭成为谷歌数据科学家的心路历程 - 教程
  • 基于selenium的网页自动搜索
  • MacOS Nginx
  • 缓存的击穿、雪崩、穿透在你项目中的场景是什么
  • [WC2021] 表达式求值
  • Set集合
  • AI时代下,如何看待“算法利维坦”?
  • JAVA - LinkedList 与 ArrayList 区别和 LinkedList 的四大接口解析
  • 苍穹外卖第三天(Swagger、@RequestParam和@RequestBody的使用场景、@PostMapping和@RequestMapping的区别、对象属性拷贝、@Insert注解)
  • Git 多账号管理
  • Hyper Server 2019安装I226-V网卡驱动
  • P10201 永恒
  • CF1209H tj
  • AirBattery - 在Mac上实时监控所有苹果设备电量
  • HTML学习日记
  • 10.10每日总结
  • 二分图与网络流 Trick
  • 10月10号
  • win11 系统如何进行硬盘分区?固态硬盘怎么分区?SSD 固态硬盘分区教程
  • 10/10
  • 数论(未完)
  • 没做完的题
  • 第十一天