首页 > 其他 > 详细

大端与小端

时间:2020-06-21 14:27:09      阅读:66      评论:0      收藏:0      [点我收藏+]

大端小端的概念

大端与小端的另一种说法是“尾端高地址存储” 与 “尾端低地址存储”。

即,当一个串存储在存储空间中的时候。其尾端相比于首端的地址是高还是低。

如 “0x12345678”, 如果0x78处于高地址的话,就是高地址存储(大端存储)。 0x78处于低地址的话,就是低地址存储(小端存储)。

大端  0x12345678

         低地址 --------> 高地址

小端  0x12345678

         高地址 --------> 低地址

(十六进制中78占一个地址位)

 

大端小端的由来

在计算机系统中,是以字节为单位分配地址空间的。

除了char占一个字节外,int short 等类型均需要两个或两个以上的地址空间。

因此,如何排列需要多个地址空间的变量,就成了一个问题(头冲哪边排列)。

因此就区分出了,“大端存储”与“小端存储”。

 

大端小端的决定

设备是大端存储模式还是小端存储模式,与存储器本身和编译器都没有关系。

只和cpu内核有关。

 

大端小端的影响

当不同端序的硬件设备相互通信时,可能会产生冲突。

如串口通信,是以字节为单位发送数据。

端序模式不同的设备在发送命令时,一段命令内字节的先后顺序是不同的。

因此,有时需要进行转序处理,才能正确识别命令。

我们现在所使用的设备与硬件基本都是小端设备,大多数情况下无需考虑大小端转换的问题。

 

大小端的验证

使用char sz[4] = {00, 00, 00, CB};

int a;

memcpy(&a, sz, sizeof(int));

将a的值打印出来。

看是不是CB所代表的数。

 

学识尚浅,欢迎纠正与补充

 

大端与小端

原文:https://www.cnblogs.com/contradictory-man/p/13172176.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!