C语言:判断大端小端

代码实现:

第一种:
​
int main() {int a = 1;char* p = (char*) & a;//char* -- 访问一个字节(第一个地址)if (*p == 1){printf("小端\n");}else{printf("大端\n");}return 0;
}​

代码解析:

  1. 定义整型变量 a 并赋值为 1。
  2. 将整型变量 a 的地址强制转换为字符指针 p。在32位系统中,一个整型变量占用4个字节,因此 p 现在指向 a 的第一个字节。
  3. 判断 *p 是否等于1。如果等于1,则说明计算机是小端模式;否则则是大端模式。

第二种:

// 定义一个名为 chaeck_sys 的函数,用于检测系统的小端/大端属性。
int chaeck_sys() {int a = 1; // 定义一个整型变量 a,并将其初始化为 1。char* p = (char*)&a; // 将整型变量 a 的地址强制转换为字符指针 p。// 检查 *p 是否等于 1。如果是,则说明计算机是小端模式;否则则是大端模式。if (*p == 1) {return 1;} else {return 0;}
}int main() {// 调用 chaeck_sys 函数并获取返回值。int ret = chaeck_sys();// 根据返回值输出结果。if (ret == 1) {printf("小端\n");} else {printf("大端\n");}return 0;
}

代码解析:注释写的很清楚

第二种优化:

// 定义一个名为 chaeck_sys 的函数,用于检测系统的小端/大端属性。
int chaeck_sys() {int a = 1; // 定义一个整型变量 a,并将其初始化为 1。return *(int*)&a; // 将整型变量 a 的地址强制转换为整型指针并返回它的值。
}int main() {// 调用 chaeck_sys 函数并获取返回值。int ret = chaeck_sys();// 根据返回值输出结果。if (ret == 1) {printf("小端\n");} else {printf("大端\n");}return 0;
}

大端和小端的存储方式:

  • 在小端模式下,数值的低位字节存储在内存的低地址处,高位字节存储在高地址处。
  • 在大端模式下,数值的高位字节存储在内存的低地址处,低位字节存储在高地址处。

这个程序利用了这样一个事实:当我们将一个整数赋值给一个变量时,该整数的所有字节都会被存储到该变量所占的内存空间中。然后通过检查这些字节在内存中的顺序,我们可以确定计算机使用的是哪种字节序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「Leetcode」滑动窗口—长度最小的子数组

💻文章目录 📄题目✏️题目解析 & 思路📓总结 📄题目 209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …,…

【UE 材质】角色触碰空气墙效果

效果 步骤 1. 新建一个工程,创建一个Basic关卡,添加一个第三人称游戏资源到内容浏览器 2. 新建一个材质参数集,这里命名为“MPC_Vector” 打开“MPC_Vector”,添加一个向量参数 3. 新建一个材质,这里命名为“M_Wall”…

力扣每日一题:2132. 用邮票贴满网格图(2023-12-14)

力扣每日一题 题目:2132. 用邮票贴满网格图 日期:2023-12-14 用时:38 m 32 s 思路:使用前缀和+差分,只是往常是一维,现在变二维了,原理差不多 时间:22ms 内存&#xff1…

运行和部署若依分离版前端

一、运行 一、用vscode打开 二、安装依赖 # 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题 npm install --registryhttps://registry.npmmirror.com# 启动服务 npm run dev浏览器访问 http://localhost:80二、部…

数据库的优化

1、创建index索引; 2、减少select * 的使用,具体一点,全取会增加web服务器的负担; 3、explain select:显示了mysql如何使用索引来处理select语句以及连接表; 4、度多使用varchar/nvarchar,变长…

前端真的死了吗

随着人工智能和低代码的崛起,“前端已死”的声音逐渐兴起。前端已死?尊嘟假嘟?快来发表你的看法吧! 以下方向仅供参考。 一、为什么会出现“前端已死”的言论 前端已死这个言论 是出自于2022年开始 ,2022年下半年疫情…

深入解析,录制视频的软件推荐(3款)

在信息时代,视频成为了传递信息、分享经验的重要媒介。为了创作出更具吸引力和实用性的视频,选择合适的录制工具显得至关重要。本文将深入介绍3款录制视频的软件,通过本文,您将深入了解这3款软件的使用方法,以满足不同…

JRT文件服务实现

网站与客户端打印和导出方面已经无大碍了,今天抽时间整整文件服务,文件服务设计可以查看下面连接。原理一样,代码会有些变化。 文件服务设计 首先实现文件服务的服务端,就是一个业务脚本,用来接收上传、移动和删除文件…

往上走^^

欢迎来到程序小院 往上走 玩法&#xff1a;转动的圆球&#xff0c;点击固定到上方的圆中即可往上走一步&#xff0c;转动超过上面圆即游戏结束&#xff0c; 往上走一步加1分&#xff0c;快去往上走吧^^。开始游戏https://www.ormcc.com/play/gameStart/218 html <canvas wi…

grpc 返回错误8, 资源不足

在client调用server的过程中发生了错误8&#xff0c;资源不足 通常由于grpc传递的数据量太大导致&#xff0c;grpc 默认通信长度为 4M( 4 * 1024 * 1024 )&#xff0c; 而我们传递的数据长度将近50Mb。所以需要调整服务端接收消息的最大长度 grpc::ServerBuilder builder;buil…

Gin之GORM 查询语句

前期工作可以看之前的&#xff08;连接数据库&#xff1b;以及确定要操作的库&#xff09; Gin之GORM 操作数据库&#xff08;MySQL&#xff09;-CSDN博客https://blog.csdn.net/m0_72264240/article/details/134948202?spm1001.2014.3001.5502这次我们操作gin库下的另外一个…

Android--Jetpack--数据库Room详解二

本是青灯不归客&#xff0c;却因浊酒恋红尘 一&#xff0c;基本使用 关于Room数据库的基本使用&#xff0c;请参考文章Android--Jetpack--数据库Room详解一-CSDN博客 二&#xff0c;Room与ViewModle,LiveData的结合使用 LiveData与ViewModle的使用&#xff0c;请参考文章Andr…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑移动式储能调度的配电网灾后多源协同孤岛运行策略》

这篇文章的标题表明研究的主题是在配电网发生灾害后&#xff0c;采用一种策略来实现多源协同孤岛运行&#xff0c;并在这个过程中特别考虑了移动式储能的调度。 让我们逐步解读标题的关键词&#xff1a; 考虑移动式储能调度&#xff1a; 文章关注的焦点之一是移动式储能系统的…

国标GB28181安防监控系统/磁盘阵列EasyCVR(V.3.4)新亮点:免保活功能

TSINGSEE青犀近日发布了EasyCVR安防管理平台的V.3.4版本&#xff0c;其中一大亮点就是很多朋友都在咨询的“免保活”功能&#xff0c;那么&#xff0c;什么是“免保活”功能&#xff1f;又该如何配置呢&#xff1f; 在EasyCVR平台有个【按需直播】按钮&#xff0c;顾名思义&…

ARM流水灯

.text .global _start _start: LED1 1.RCC时钟使能GPIOE RCC_MP_AHB4ENSETR[4]->1 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x1<<4) STR R1,[R0] 2.设置PE10为输出模式 GPIOE_MODER[21:20]->01 先清0 LDR R0,0x50006000 LDR R1,[R0] BIC R1,R1,#(0x3<&…

Linux | 多线程

前言 本文主要介绍多线程基础知识&#xff0c;以及使用多线程技术进行并发编程&#xff1b;最后会介绍生产者消费者模型&#xff1b; 一、线程基本认识 1、什么是线程 如果你是科班出生&#xff0c;你肯定听过线程相关概念&#xff1b;但是你可能没有真正搞懂什么是线程&#…

练基础忆基础打好基础:68个 Python 内置函数搞搞清楚

内置函数就是Python给你提供的, 拿来直接用的函数&#xff0c;比如print&#xff0c;input等。 截止到python版本3.6.2 &#xff0c;一共提供了68个内置函数&#xff0c;具体如下&#x1f447; abs() dict() help() min() setattr() all() …

集群监控Zabbix和Prometheus

文章目录 一、Zabbix入门概述1、Zabbix概述2、Zabbix 基础架构3、Zabbix部署3.1 前提环境准备3.2 安装Zabbix3.3 配置Zabbix3.4 启动停止Zabbix 二、Zabbix的使用与集成1、Zabbix常用术语2、Zabbix实战2.1 创建Host2.2 创建监控项&#xff08;Items&#xff09;2.3 创建触发器&…

以太网协议与DNS

以太网协议 以太网协议DNS 以太网协议 以太网用于在计算机和其他网络设备之间传输数据,以太网既包含了数据链路层的内容,也包含了物理层的内容. 以太网数据报: 其中目的IP和源IP不是网络层的目的IP和源IP,而是mac地址.网络层的主要负责是整体的转发过程,数据链路层负责的是局…

Data Mining数据挖掘—2. Classification分类

3. Classification Given a collection of records (training set) – each record contains a set of attributes – one of the attributes is the class (label) that should be predicted Find a model for class attribute as a function of the values of other attribu…