二、大端模式和小端模式

01. 概述
大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端;

小端模式(Little-endian):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端,即逆序排列,低尾端;

例(无论是小端模式还是大端模式。每个字节内部都是按顺序排列):

大端模式:
低地址 -----------------> 高地址

0x0A | 0x0B | 0x0C | 0x0D

二、大端模式和小端模式_第1张图片

小端模式:
低地址 ------------------> 高地址

0x0D | 0x0C | 0x0B | 0x0A

二、大端模式和小端模式_第2张图片


02. 示例分析
16bit宽的数0x1234在两种模式CPU内存中的存放方式(假设从地址0x2000开始存放)为:

32bit宽的数0x12345678在两种模式CPU内存中的存放方式(假设从地址0x2000开始存放)为:
二、大端模式和小端模式_第3张图片
03. 优缺点
大端小端没有谁优谁劣,各自优势便是对方劣势:

小端模式 :

​ 强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。
大端模式 :

​ 符号位的判定固定为第一个字节,容易判断正负。

04. 数组存储
大端模式:

​ 高位存储在高地址,低位存储在低地址。

小端模式:

​ 低位存储在低地址,高位存储在高地址。

05. 测试机器模式
测试机器的大小端模式代码

二、大端模式和小端模式_第4张图片
一般操作系统都是小端,而通讯协议是大端的。
————————————————
版权声明:本文为CSDN博主「沧海一笑-dj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/dengjin20104042056/article/details/103012208

你可能感兴趣的:(linux系统编程)