【Linux网络编程】大端模式和小端模式

【Linux网络编程】大端模式和小端模式01 概述大端模式 Big endian 高位字节排放在内存的低地址端 低位字节排放在内存的高地址端 即正序排列 高尾端 小端模式 Little endian 低位字节排放在内存的低地址端 高位字节排放在内存的高地址端 即逆序排列 低

欢迎大家来到IT世界,在知识的湖畔探索吧!

01. 概述

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

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

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

  1. 大端模式:

低地址 —————–> 高地址

0x0A | 0x0B | 0x0C | 0x0D

【Linux网络编程】大端模式和小端模式



欢迎大家来到IT世界,在知识的湖畔探索吧!

  1. 小端模式:

低地址 ——————> 高地址

0x0D | 0x0C | 0x0B | 0x0A

【Linux网络编程】大端模式和小端模式

02. 示例分析

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

内存地址

小端模式存放内容

大端模式存放内容

0x2000

0x34

0x12

0x2001

0x12

0x34

32bit宽的数0x在两种模式CPU内存中的存放方式(假设从地址0x2000开始存放)为:

内存地址

小端模式存放内容

大端模式存放内容

0x2000

0x78

0x12

0x2001

0x56

0x34

0x2002

0x34

0x56

0x2003

0x12

0x78

03. 优缺点

大端小端没有谁优谁劣,各自优势便是对方劣势:

小端模式 :

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

大端模式 :

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

04. 数组存储

大端模式:

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

小端模式:

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

05. 测试机器模式

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

#include <stdio.h>

#include <string.h>

int main(void)

{

short i = 0x1234;

char *p = (char *)&i;

if (0x12 == *p)

{

printf(“大端模式\n”);

}

else

{

printf(“小端模式\n”);

}

return 0;

}

一般操作系统都是小端,而通讯协议是大端的。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/111048.html

(0)
上一篇 23分钟前
下一篇 8分钟前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信