首页 > 其他分享 >判断大小端--C语言版

判断大小端--C语言版

时间:2023-02-01 11:33:08浏览次数:45  
标签:小端 存储 判断 return -- ret C语言 int printf

首先,什么是大小端存储方式?

大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地 址中。

方法一:使用强制类型转换

int is_byteorder(int* p)
{
return *(char*)p;//强制类型转换,将精度跳得更高一点
}
int main()
{
int n = 1;
int ret = is_byteorder(&n);
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
复制代码

方法二:利用联合体数据存储的特点

联合体里面的数据会共用同一块内存,改变其中一个数据的值,其他数据的值可能也会随之变化

int is_byteorder(int* p)
{
union un { //定义一个联合体类型
int i;
char c;
}u;
u.i = 1;//修改i的值,c的值也会随之发生变化
return u.c;
}
int main()
{
int n = 2;
int ret = is_byteorder(&n);
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
复制代码

如果将 i 改为1,如果是小端存储,就会将01存储到 c 中,就会返回1

欢迎点赞收藏关注,感谢大家的支持!

标签:小端,存储,判断,return,--,ret,C语言,int,printf
From: https://blog.51cto.com/u_15308610/6030989

相关文章

  • 项目运行报错:目标进程已退出,但未引发 CoreCLR 启动事件。
      项目运行报错:目标进程已退出,但未引发CoreCLR启动事件。请确保将目标进程配置为使用.NETCore。如果目标进程未运行.NETCore,则发生这种情况并不意外。 解决方......
  • 外贸客户关系管理对出口企业的作用
    无论是进口还是出口又或者是内贸,企业在客户关系管理方面是有共同性的,但也有其特殊的方面,出口企业客户关系管理主要作用有多个方面。比如客户的信用管理,客户的档案管理,客户的......
  • 成为隐形开发人员:如何在编写有价值的软件时保持隐身
    远离聚光灯,如果你知道什么对你最好。炫耀你的成就,加班加点,成为关注的焦点并不是你成功的方式。这就是你如何将更多的责任推给你。这就是伟大的职业变成倦怠的地方。声张......
  • 嵌入式开发中一些少见的C语言用法
    使用STM32开发的朋友不知道是否有发现过这样的一些宏定义?如下:#ifdefined(__CC_ARM)#pragmaanon_unions#endif看到上面的语句一开始确实搞不懂为什么要写这些东西,通过上......
  • 什么是探索性测试?探索性测试有哪些方法?
    (探索性测试及其理论)1、阶段一般在系统测试阶段完成,此时软件质量趋于稳定2、目的在最短的时间内发现最多严重的bug,通过新的思路,新的方法,找到还未被发现的问题,找到漏网......
  • 159-DataSource name not set,ruoyi升级后,job启动报错
    启动是报错:quartz.SchedulerConfigException:DataSourcenamenotset找到该"ScheduleConfig.java"类,将下面代码prop.put("org.quartz.jobStore.class","org.quartz.im......
  • 企业的内部文档太杂乱,有什么好用的文档管理软件?
    企业内部文档的管理,是一个老生常谈的问题。有些企业的文档管理比较混乱,很难做好企业内部的信息管控。我们可以先从以下几个方面入手:企业内部文档杂乱分散,集中式的管理;信......
  • 消费互联网后半场,超级应用强势崛起
    回顾过往的一年,全球国家形势演变复杂,我国需要在各行各业都集中资源,打造更具国际竞争力的创新土壤。于是乎,反垄断政策落地、用户存量争夺愈演愈烈……互联网人突然发现,以往基......
  • JMeter笔记1 | JMeter简介及体系结构
    (JMeter笔记1|JMeter简介)1JMeter简介ApacheJMeter是Apache组织基于Java开发的压力测试工具,用于对软件做压力测试;开源的桌面应用软件;可用于测试静态和动态资......
  • 面试题-如何实现Redis的高可用
    如何实现Redis的高可用实现Redis的高可用,主要有哨兵和集群两种方式。哨兵简单的一句话:反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为......