[其他] 秒懂大小端

[复制链接]
1571|7
 楼主| aoyi 发表于 2023-10-27 10:50 | 显示全部楼层 |阅读模式

25664653b258ee3bf0.png


判断大小端代码:

int temp=1;

char *p=(char *)&temp;

if(*p==1)printf("小端模式");

else printf("大端模式");
————————————————
版权声明:本文为CSDN博主「IOT-Power」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a15236617777/article/details/131822309

呐咯密密 发表于 2023-10-27 13:57 | 显示全部楼层
继续追加大小端互换代码
tpgf 发表于 2023-11-2 10:11 | 显示全部楼层
现在的单片机基本上是不是大概率都采用大端模式了啊
 楼主| aoyi 发表于 2023-11-2 10:43 | 显示全部楼层
为什么一开始的时候大小端没有一个统一的规定呢?大家思考过这个问题吗
tfqi 发表于 2023-11-2 11:17 | 显示全部楼层
Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端--可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据普遍采用的都是大端。
gwsan 发表于 2023-11-2 20:49 | 显示全部楼层
可以自行通过代码判断是大端还是小端吗?
zljiu 发表于 2023-11-2 21:13 | 显示全部楼层
为什么要区分大小端,这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于 8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式
nawu 发表于 2023-11-2 21:48 | 显示全部楼层
大小端是不是基本应用在数据传输方面呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

3316

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部