当前位置: 首页 > news >正文

数据在内存中的存储【C语言版】

目录

1.举例:

2.深入刨析大端小端的组成:

3.判断当前编译环境是大端还是小端的方法

4.以函数的形式来判断当前的编译环境是大端还是小端【就是把判断大端小端的方法放进函数里面来实现,得到返回值,可以减少main()函数的内存】


数据在内存中的字节序存储有两种方式:一种是大端存储,另一种是小端存储。

决定数据在内存中的字节序存储方式的因素是当前编译器的环境【★★★★★】。

小端字节序存储:一个数据的低位字节的数据存放在内存的低地址处,高位字节的数据存放在内存的高地址处。【小端的数据举例:0x78563412=12 34 56 78】
大端字节序存储:一个数据的低位字节的数据存放在内存的高地址处,高位地址的数据存放在内存的低地址处。【大端的数据举例:0x78563412=78 56 34 12】
 

1.举例:

#include<stdio.h>
int main() {int a = 0x11223344;//当前的环境下数据是以小端的形式存放的,即:0x11223344=44 33 22 11;int b = 0x21;//小端存放,即:0x01=01 00 00 00;char* p =(char*) & b;//拿出来的是b的四个字节【这个是先取出对应地址,再强制类型转换】中,地址较小的那个字节的地址for (int i = 0; i < 4; i++) {printf("%0x\n",*(p+i));//%0x输出的是十六进制形式的整型}return 0;
}

运行结果:

2.深入刨析大端小端的组成:

#include<stdio.h>
int main() {int a = 10005;//a在内存中的存储形式是:15 27 00 00【5是个位,1是十位,7是百位,2是千位】//(⚠★★★★★这个中的15是指十位是1,个位是5,与个位的15是F不能混为一谈)char* p = (char*)&a;for (int i = 0; i < 4; i++) {printf("%d\n", *(p + i));}//a=10005(十进制)=2715(十六进制)return 0;
}

运行结果:

图示:

3.判断当前编译环境是大端还是小端的方法

#include<stdio.h>
int main() {int a = 5;char* p = (char*)&a;printf("%d\n", *p);//直接看它的第一个字节输出的是什么,如果是0,说明是大端;如果是5,说明是小端if (*(char*)&a == 5) {printf("数据在内存中是以小端形式存放\n");}elseprintf("数据在内存中是以大端形式存放\n");return 0;
}

运行结果:

4.以函数的形式来判断当前的编译环境是大端还是小端【就是把判断大端小端的方法放进函数里面来实现,得到返回值,可以减少main()函数的内存】

#include<stdio.h>
int if_duan(int a) {//这个里面的形式参数可以设置成任何变量,和实际参数不一样也行,均不影响return  *(char*)&a == 5;
}
int main() {int a = 5;int ret=if_duan(a);if (ret = 1) {printf("数据在当前编译环境下是小端形式存储\n");}elseprintf("数据在当前编译环境下是大端形式存储\n");return 0;
}

运行结果:

相关文章:

数据在内存中的存储【C语言版】

目录 1.举例&#xff1a; 2.深入刨析大端小端的组成&#xff1a; 3.判断当前编译环境是大端还是小端的方法 4.以函数的形式来判断当前的编译环境是大端还是小端【就是把判断大端小端的方法放进函数里面来实现&#xff0c;得到返回值&#xff0c;可以减少main()函数的内存】…...

【SQL】进阶知识 — 各大数据库合并几条数据到一行的方式

大家好&#xff0c;欢迎来到本期的 SQL 知识分享&#xff01;今天我们要聊一个非常实用的技能&#xff1a;如何将多个行数据合并成一行&#xff01;如果你曾经需要把多个查询结果合并成一个单元&#xff0c;或者把多行数据汇总到一个字段中&#xff0c;这篇文章将会教你如何用 …...

Gitee上传项目代码教程(详细)

工具必备&#xff1a;Git Bash 上传步骤 1.在Gitee创建项目仓库 2.进入本地项目目录 右键打开Git Bash here 3.配置用户名和邮箱 如果之前给git配置过用户名和邮箱可跳过 查看Git是否配置成功&#xff1a;git config --list git config --global user.name "xxx"…...

python ijson 用法教程

ijson PyPI Python ijson处理大型JSON文件 - 秀尊云 Python解析JSON大文件 | Leetaos Blog https://stackoverflow.com/questions/2400643/is-there-a-memory-efficient-and-fast-way-to-load-big-json-files/58148422#58148422 Python中读写&#xff08;解析&#xff09;J…...

什么是网络安全攻防演练,即红蓝对抗?

定义与目的 定义&#xff1a;网络安全攻防演练是一种模拟真实网络攻击和防御场景的活动&#xff0c;通过组织专业的攻击队伍&#xff08;红队&#xff09;和防御队伍&#xff08;蓝队&#xff09;进行对抗&#xff0c;来检验和提升组织的网络安全防御能力、应急响应能力和安全运…...

数据挖掘——决策树分类

数据挖掘——决策树分类 决策树分类Hunt算法信息增益增益比率基尼指数连续数据总结 决策树分类 树状结构&#xff0c;可以很好的对数据进行分类&#xff1b; 决策树的根节点到叶节点的每一条路径构建一条规则&#xff1b;具有互斥且完备的特点&#xff0c;即每一个样本均被且…...

Pytorch单、多GPU和CPU训练模型保存和加载

Pytorch多GPU训练模型保存和加载 在多GPU训练中&#xff0c;模型通常被包装在torch.nn.DataParallel或torch.nn.parallel.DistributedDataParallel中&#xff0c;这会在模型的参数名前加上module前缀。因此&#xff0c;在保存模型时&#xff0c;需要使用model.module.state_di…...

Karate 介绍与快速示例(API测试自动化、模拟、性能测试与UI自动化工具)

Karate是一个将API测试自动化、模拟、性能测试甚至UI自动化结合到一个统一框架中的开源工具。 Karate使用Gherkin 的BDD语法,是语言中性的,即使是非程序员也很容易。断言和HTML报告是内置的,支持并行运行测试以提高速度Karate 是用Java语言编写, 可以在Java 项目项目中运行…...

Pytest 高级用法:间接参数化

文章目录 1. 引言2. 基础概念2.1 Fixture2.2 参数化 3. 代码实例3.1 基础设置3.2 测试用例示例示例 1&#xff1a;基础的间接参数化示例 2&#xff1a;通过 request 获取参数值示例 3&#xff1a;多参数组合测试示例 4&#xff1a;部分间接参数化 4. 最佳实践5. 总结参考资料 1…...

第07章 存储管理(一)

一、磁盘简介 1.1 名称称呼 磁盘/硬盘/disk是同一个东西&#xff0c;不同于内存的是容量比较大。 1.2 类型 机械&#xff1a;机械硬盘即是传统普通硬盘&#xff0c;主要由&#xff1a;盘片&#xff0c;磁头&#xff0c;盘片转轴及控制电机&#xff0c;磁头控制器&#xff0…...

Go语言的 的设计模式(Design Patterns)核心知识

Go语言的设计模式&#xff08;Design Patterns&#xff09;核心知识 Go语言&#xff08;Golang&#xff09;是一种静态类型、编译型的编程语言&#xff0c;自2009年由Google正式推出以来&#xff0c;因其高效的性能、卓越的并发能力以及简洁的语法受到广泛欢迎。在软件开发中&…...

js函数预览图片:支持鼠标和手势拖拽缩放

对之前的方式改进&#xff1a;原生js实现图片预览控件&#xff0c;支持丝滑拖拽&#xff0c;滚轮放缩&#xff0c;放缩聚焦_js图片预览-CSDN博客 /*** 图片预览函数&#xff0c;调用后自动预览图片* param {图片地址} imgurl*/ function openImagePreview(imgurl) {if (!imgurl…...

用QT实现 端口扫描工具1

安装在线QT&#xff0c;尽量是完整地自己进行安装&#xff0c;不然会少包 参考【保姆级图文教程】QT下载、安装、入门、配置VS Qt环境-CSDN博客 临时存储空间不够。 Windows系统通常会使用C盘来存储临时文件。 修改临时文件存储位置 打开系统属性&#xff1a; 右键点击“此电…...

设计模式 结构型 适配器模式(Adapter Pattern)与 常见技术框架应用 解析

适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许将一个类的接口转换成客户端所期望的另一个接口&#xff0c;从而使原本因接口不兼容而无法一起工作的类能够协同工作。这种设计模式在软件开发中非常有用&#xff0c;尤其是在需要集成…...

vue 项目集成 electron 和 electron 打包及环境配置

vue electron 开发桌面端应用 安装 electron npm i electron -D记得加上-D&#xff0c;electron 需添加到devDependencies&#xff0c;如果添加到dependencies后面运行可能会报错 根目录创建electron文件夹&#xff0c;在electron文件夹创建main.js&#xff08;或者backgrou…...

vscode如何离线安装插件

在没有网络的时候,如果要安装插件,就会麻烦一些,需要通过离线安装的方式进行。下面记录如何在vscode离线安装插件。 一、下载离线插件 在一台能联网的电脑中,下载好离线插件,拷贝到无法联网的电脑上。等待安装。 vscode插件商店地址:https://marketplace.visualstudio.co…...

计算机网络常见面试题及解答

以下是计算机网络中常见的面试题及解答&#xff0c;按主题分类&#xff1a; --- ## **一、基础概念** ### **1. OSI 七层模型和 TCP/IP 模型的区别是什么&#xff1f;** **答&#xff1a;** - **OSI 七层模型&#xff1a;** - 应用层、表示层、会话层、传输层、网络层、数…...

举例说明AI模型怎么聚类,最后神经网络怎么保存

举例说明怎么聚类,最后神经网络怎么保存 目录 举例说明怎么聚类,最后神经网络怎么保存K - Means聚类算法实现神经元特征聚类划分成不同专家的原理和过程 特征提取: 首先,需要从神经元中提取有代表性的特征。例如,对于一个多层感知机(MLP)中的神经元,其权重向量可以作为特…...

HarmonyOS NEXT应用开发实战(一):边学边玩,从零开发一款影视APP

引言 学习一项技能&#xff0c;最好也最快的办法就是动手实战。通过自己给自己找项目练习&#xff0c;不仅能够激发兴趣&#xff0c;还能从开发实战中不断总结经验。这种学习方法是最为高效的。今天&#xff0c;我们将通过开发一款名为“爱影家”的影视APP&#xff0c;来学习H…...

STM32G0B1 can Error_Handler 解决方法

问题现象 MCU上电&#xff0c;发送0x13帧数据固定进入 Error_Handler 硬件介绍 MCU :STM32G0B1 can:NSI1042 tx 接TX RX 接RX 折腾了一下午&#xff0c;无解&#xff0c;问题依旧&#xff1b; 对比测试 STM32G431 手头有块G431 官方评估版CAN 模块&#xff1b; 同样的…...

Lattice Planner实战避坑指南:从Frenet坐标推导到轨迹拼接,这些细节决定了成败

Lattice Planner深度调优实战&#xff1a;Frenet坐标转换与轨迹拼接的工程化解决方案 在自动驾驶规划算法领域&#xff0c;Lattice Planner因其数学优雅性和工程实用性成为主流选择。但当工程师真正将其落地时&#xff0c;往往会遭遇理论推导与工程实现间的巨大鸿沟——那些论文…...

告别抽卡盲盒:3步掌握原神抽卡数据分析的艺术

告别抽卡盲盒&#xff1a;3步掌握原神抽卡数据分析的艺术 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 你是否曾对着原神祈愿界面发呆&#xff0c;记不…...

Frenet与Cartesian坐标系互转实战:Python函数库封装与性能优化

1. 为什么需要Frenet与Cartesian坐标系互转 在自动驾驶和机器人路径规划领域&#xff0c;我们经常需要在两种坐标系之间进行转换&#xff1a;Cartesian坐标系&#xff08;直角坐标系&#xff09;和Frenet坐标系。Cartesian坐标系就是我们熟悉的x、y、z三维空间坐标&#xff0c;…...

从单机到集群:基于RoboMaster SDK的Tello无人机编队与实时视频流整合实践

1. 从单机到集群&#xff1a;Tello无人机编队飞行入门 第一次接触Tello无人机编队飞行时&#xff0c;我被这个看似简单实则复杂的系统深深吸引了。想象一下&#xff0c;几台小小的无人机在空中整齐划一地完成各种动作&#xff0c;还能实时传回多路视频画面&#xff0c;这背后需…...

探索Happy Island Designer:重塑岛屿规划体验的智能工具

探索Happy Island Designer&#xff1a;重塑岛屿规划体验的智能工具 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)"&#xff0c;是一个在线工具&#xff0c;它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossin…...

京东购物评价自动化终极指南:告别繁琐评价,释放你的宝贵时间

京东购物评价自动化终极指南&#xff1a;告别繁琐评价&#xff0c;释放你的宝贵时间 【免费下载链接】jd_AutoComment 自动评价,仅供交流学习之用 项目地址: https://gitcode.com/gh_mirrors/jd/jd_AutoComment 还在为京东购物后堆积如山的评价任务而烦恼吗&#xff1f;…...

QMCDecode:数字音乐解放引擎,12种加密格式一键破解

QMCDecode&#xff1a;数字音乐解放引擎&#xff0c;12种加密格式一键破解 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff…...

实战指南:在自定义数据集上微调Gold-YOLO-Nano,兼顾精度与速度(环境配置+训练技巧)

实战指南&#xff1a;在自定义数据集上微调Gold-YOLO-Nano&#xff0c;兼顾精度与速度 当目标检测遇上边缘计算设备&#xff0c;开发者们总在寻找那个微妙的平衡点——既要模型足够轻量以适应资源限制&#xff0c;又要保持足够的精度满足业务需求。Gold-YOLO-Nano作为NeurIPS …...

深度解析文件下载漏洞:原理、利用场景及与文件包含漏洞的关联

在Web安全领域&#xff0c;文件下载功能是绝大多数网站的基础功能之一——用户可通过该功能下载文档、图片、安装包等合法资源。但如果开发者未对下载功能进行严格的安全校验&#xff0c;就可能产生文件下载漏洞&#xff08;File Download Vulnerability&#xff09;。该漏洞虽…...

解锁B站宝藏:用BiliBiliCCSubtitle轻松获取CC字幕的完整指南

解锁B站宝藏&#xff1a;用BiliBiliCCSubtitle轻松获取CC字幕的完整指南 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 你是否曾经在B站看到精彩的视频&#xff…...