你所不知道的 数据在内存中储存 的来龙去脉

news2024/11/23 15:40:47

        那么好了好了,宝子们,今天给大家介绍一下 “数据在内存中储存” 的来龙去脉,来吧,开始整活!⛳️         

一、数据类型的介绍

(1)整型和浮点型: 

 (2)其他类型:

 

 二、数据在内存中的储存顺序(大端 小端)

 (1)引入字节序:

字节序 是以 字节 为单位讨论内存的储存顺序的

什么大端小端:
大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;
小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位 , ,保存在内存的高地址中。
注意:这里的 低位 和 高位 是指:个十百千万 的低位和高位
(2)如何判断:

 那么接下来以我的编译器vs2022,给大家来示范判断一下如何判断是大端储存模式还是小端储存模式?

        由此可以看出我们的低位存放的是低地址,高位存放的是高地址,所以说在此种情况下,这种储存模式是小端储存

三、通过例题来介绍:数据在内存中是如何存储的

1.(解析在代码中)


#include <stdio.h>
int main()
{


	char a = -1;
	//10000000000000000000000000000001(原码来写出来),因为你输入的是-1,是整数,所以说是4个字节,要写32个比特位。
	//11111111111111111111111111111110(反码)
	//11111111111111111111111111111111(这是补码),又因为这里a变量的数据类型是char只能存放1个字节,8个比特位,所以说这里需要从低位向高位进行截断,
	//11111111 (a)截断后
	//11111111111111111111111111111111(因为最终的结果是以十进制的形式打印有符号的整数,所以说这里需要进行整形提升)依然按照整形提升的规则来。(补码)
	//11111111111111111111111111111110(反码)-1啦
	//10000000000000000000000000000001 (原码)所以最终的结果:-1,是这样来的

	signed char b = -1;
	//11111111111111111111111111111111
	//11111111 -b

	unsigned char c = -1;
	//11111111 -c
	//00000000000000000000000011111111
	//
	printf("a=%d,b=%d,c=%d", a, b, c);
	//%d - 十进制的形式打印有符号整型整数
	//整型提升

	return 0;
}

 c=255的解释:

2.


#include <stdio.h>
int main()
{
	char a = -128;
	//-128
	//10000000000000000000000010000000(原码)
	//11111111111111111111111101111111(反码)
	//11111111111111111111111110000000(补码)
	//-128的补码
	//10000000(截断后)
	//11111111111111111111111110000000(整形提升后)--最终结果
	//
	printf("%u\n", a);
	return 0;
}

 3.

#include <windows.h>

int main()
{
	unsigned int i;
	for(i = 9; i >= 0; i--)
	{
		printf("%u\n", i);
		Sleep(1000);//单位是毫秒
	}

	return 0;
}

 结果到零的时候,为什么是又变成了一个很大的数字呢?

这答案就在下面的这张图里面,(注意:这个图里面的数据类型是char,但是解释原理是一样的)

 当 i 减到零的时候,有32个0,再减的时候,就变成了全1:

4.(很奇妙的例题):

#include <string.h>
#include <stdio.h>
int main()
{
	char a[1000];
	int i;
	for (i = 0; i < 1000; i++)
	{
		a[i] = -1 - i;
	}
	printf("%d", strlen(a));
	return 0;
}

结果为什么是这个呢?那么接下来看4张图片,你就会明白了 

还有一点需要注意:他先打印的是-1,-2,-3,-4........-128,127,126......1,0(这一组数不断的循环打印!但是0='\0',strlen函数只计算‘\0’之前的内容,所以最终答案是255。)

 

 

 

 

 

 所以,综上所述:

char = signed char的范围是:(-128~127)

unsigned char的范围是:(0~255)

在最后我总结了一份关于这种类型题的解题思路:(大家可以参考一下,还望多多指教)

好了,今天的分享就到这里了

如果对你有帮助,记得点赞👍+关注哦!
我的主页还有其他文章,欢迎学习指点。关注我,让我们一起学习,一起成长吧!

请添加图片描述

 

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

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

相关文章

Linux——使用命令行参数管理环境变量

目录 使用命令行参数获取用户在DOS命令行输入的指令&#xff1a; 方法&#xff1a;代码如下&#xff1a; 使用命令行参数获取并打印部分或者整体环境变量的方法&#xff1a; 方法1&#xff1a; 运行结果&#xff1a; 方法2&#xff1a;使用外部链接environ: 使用命令行参数…

如何开发背包系统?

UE5 插件开发指南 前言0 背包数据结构1 背包管理组件2 背包UI显示前言 相信大家对于背包系统并不陌生,谁还没有玩过几款游戏呢?游戏中的背包都是大同小异的,朴素的功能就是存放我们获取到的物品,高级一点就是要有物品分类,便于玩家刷选背包中的物品,能够显示玩家拥有的货…

2023 牛津大学博士后申请指南

牛津大学是全球著名的高等教育机构&#xff0c;其博士后项目备受瞩目。为了帮助申请者更好地了解牛津大学博士后申请流程&#xff0c;本文将介绍该校博士后申请指南的相关内容。一、申请条件首先&#xff0c;申请者必须已经获得博士学位或即将完成博士学位&#xff0c;并具有相…

《数据库应用系统实践》------ 报刊销售系统

系列文章 《数据库应用系统实践》------ 报刊销售系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构&#xff08;需包含功能结构框图和模块说明&#xff09;3&#xff0e;系统功能简介 二、概念模型设计1&#xff0e;基本要素&#xff08;符号介绍说明&#xff…

k8s 对已完成job自动清理

job在处理完一个任务以后&#xff0c;状态会变成Completed&#xff0c;job在状态为Completed的时候默认不会自动清理的&#xff0c;还会继续占用系统资源。 TTL-after-finished控制器 kubernetes中有专门的控制器可以自动清理已完成的job,就是TTL-after-finished控制器。 TTL…

数据中心产业如何变革?中国数字能源生态大会这些观点值得一读

对于数据中心产业&#xff0c;这是一个最好的时代。数字经济的蓬勃发展&#xff0c;推动产业数字化、企业数字化转型步入纵深阶段&#xff0c;大幅增加数据中心等基础设施的需求&#xff0c;让数据中心产业迎来前所未有的市场良机。 与此同时&#xff0c;对于数据中心产业&…

【备战秋招】每日一题:4月1日美团春招(二批)第一题:题面+题目思路 + C++/python/js/Go/java带注释

2023大厂笔试模拟练习网站&#xff08;含题解&#xff09; www.codefun2000.com 最近我们一直在将收集到的各种大厂笔试的解题思路还原成题目并制作数据&#xff0c;挂载到我们的OJ上&#xff0c;供大家学习交流&#xff0c;体会笔试难度。现已录入200道互联网大厂模拟练习题&…

使用render平台免费部署自己的ChatGPT

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

解决websocket在部署到服务器https下无法使用的问题

目录 一、问题 1.1 问题描述 1.2 问题详细描述 二、解决 2.1 https下的链接类型 2.2 修改Nginx的配置 一、问题 1.1 问题描述 一个小项目中使用到了websocket&#xff0c;这个websocket在本地完全是完全正常运行的&#xff0c;不管是前后台的信息通讯 还是 异常报错接收…

JavaScript教程(高级)

面向对象编程介绍 两大编程思想 &#xff08;1&#xff09;、 面向过程编程&#xff1a; &#xff08;缩写 POP&#xff09;&#xff08; Process-oriented programming&#xff09;面向过程就是分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现&am…

【PowerQuery】M语言的使用产品和使用场景

当然PowerQuery的M语言应用场景不只是引用在PowerBI和Excel中,它具有广泛的应用场景。目前我们可以在以下产品的使用场景中应用到M语言。 Excel PowerQuery应用Excel通过M语言可以实现整体数据的清洗和重构。  PowerBI 的PowerQuery应用 PowerBI也是通过M语言来实现数据…

VSCODE 插件推荐

文章目录 项目管理Project Manager markdownmarkdown-pdfPaste ImageMarkdown Preview Enhanced 笔记Notes 思维导图vscode-mindmap 开发Visual Studio IntelliCode GitHub Repositories 项目管理 Project Manager 以下是项目管理器提供的一些功能&#xff1a; 将任何文件夹…

JS中this的指向

JS中this的指向 本文目录 JS中this的指向全局上下文&#xff08;Global Context&#xff09;函数上下文&#xff08;Function Context&#xff09;普通函数调用作为对象的方法调用构造函数调用箭头函数回调函数 事件处理器上下文&#xff08;Event Handler Context&#xff09;…

find_package深度解析及实例应用

1. 检索模式 1.1 module模式 在这个模式下会查找一个名为find.cmake的文件&#xff0c;首先去CMAKE_MODULE_PATH指定的路径下去查找&#xff0c;然后去cmake安装提供的查找模块中查找&#xff08;安装cmake时生成的一些cmake文件&#xff09;。找到之后会检查版本&#xff0c;…

大模型全情投入,低代码也越来越清晰

众所周知&#xff0c;不少互联网企业在大模型领域全情投入。那么在这阵阵浪潮中&#xff0c;我们可以观察到什么样的“众生相”&#xff1f; 今年3月以来&#xff0c;国内已有超过20家企业入局大模型赛道。从百度“文心一言”、阿里“通义千问”的发布&#xff0c;华为“盘古”…

解决Kali的Python版本切换问题以及pip2安装问题

问题背景 需要使用Python2版本运行脚本&#xff0c;但是Kali系统自从2021后Python2&#xff0c;3共存 解决方案 &#xff08;1&#xff09;打开终端输入以下命令&#xff0c;但是需要有root权限 update-alternatives --install /usr/bin/python python /usr/bin/python2 100…

k8s介绍

目录 1&#xff1a;k8s概念 2&#xff1a;为什么引入k8s和k8s特性 2.1 为什么要引入k8s&#xff1a; 2.2 k8s特性 3 K8S架构 1&#xff1a;k8s概念 k8s官方网站&#xff1a;Kubernetes Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和…

数据库基础——5.运算符

这篇文章我们来讲一下SQL语句中的运算符操作。 说点题外话&#xff1a;SQL本质上也是一种计算机语言&#xff0c;和C&#xff0c;java一样的&#xff0c;只不过SQL是用来操作数据库的。在C&#xff0c;java中也有运算符&#xff0c;这两种语言中的运算符和数学中的运算符差距不…

【形形色色的卷积】差分卷积

文章目录 0. 前言1. 中心差分卷积2. 像素差分卷积3. 参考 0. 前言 普通卷积不能显式地提取图像的梯度信息&#xff0c;因此不能较好地描述细粒度的纹理信息&#xff0c;在人脸活体检测、边缘检测等对细粒度纹理信息敏感的任务中难以取得理想的结果。针对上述问题&#xff0c;O…

基于STM32的定时器--定时中断(HAL库)

基于STM32的定时器--定时中断&#xff08;HAL库&#xff09; 介绍引言定时器介绍 实例项目介绍准备设计流程 介绍 引言 本文旨在介绍如何使用STM32CubeMX配置KEIL 5开发一个每10us定时器中断触发一次的项目。帮助初学者入门STM32的定时器使用。 定时器介绍 定时器是STM32微…