当前位置: 首页 > 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; 同样的…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

简易版抽奖活动的设计技术方案

1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...