数据结构——内存(RAM)

前言

在计算机硬件上我们学习了内存的概念,那在软件上是如何实现存储的呢?数据结构很多时候都和内存有关,不理解对后面很多的概念会很模糊。笔者写的文章将陪伴各位数据结构的学习。不存在先后的关系,不拘泥于语言,希望各位可以拓展出更多的内容,后面会考虑出算法,继续加油,越来越强。

内存和内存条的用途

image-20230126173852066.png
在买手机和买电脑时我们经常会看到8+128、12+256GB,这是什么意思呢?那8和12就是运行内存。在电脑上我们叫内存条,电脑上的内存条就是管运行内存的。

当我们打开任务管理器时:

image-20230126174352376.png
可以发现所有的程序都会占内存。
image-20230126174425190.png
运行内存:即决定了前台和后台能运行多少个APP,能运行多少个程序

一旦内存占满,内存不够用了,就不能再打开应用了。就像是一个垃圾桶装满垃圾,想要继续装东西,就得清内存,我们手机经常清理后台就是这个操作。

那内存是如何保存不同数据类型的

常识:一个8bit(位)=1byte

在不同的编程语言中,int类型会占4个或8个字节,计算机只能识别2进制,我们来模拟这个过程。

可以将内存想像成有边界的网,内存的容量是有限的,一个字节占一个格子。
image-20230126184052169.png

我们往里存入数字1,怎么存储呢?
image-20230126184253788.png

这样就把1存储进去了,必须是连续的,中间如果有2和3是被占掉了,就需要找别的空间。

如果是char类型怎么办呢?有个叫ASCII码的东西,将字符A转换成二进制数存入内存。

有一句神句送给各位,有四个病人要住院(内存就是住院部),并且这四个病人要求连号。

住院部越大,容纳的病人就越多。

于是就有back to back概念 并且是连续的存储空间

int类型的范围是如何计算的?

在C/C++中int类型的范围取决于机器的字长,(字长)计算机处理能够最大的位数,在32位的机器中,2^32所占的范围可能就是-2147483648——2147483647,(32来自与4位字节和8个bit)很搞笑的是python中int类型可以存储无限的字节,所以在数据结构中我们不能拘泥于语言。这也是很多初学者的误区。

后记

在本节的学习中,希望各位理解概念,对后面的学习会大有裨益。无论是考研和学习数据结构来说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值