计算机存储单位以及内存原理

计算机的存储单位:
计算机系统数据只用0和1这种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个位为一个字节。编程

电脑的各类存储器的最小的存储单位是比特,也就是位(bit,简称b),它表示一个二进制位。比位大的单位是字节(byte,简称B),它等于8个二进制位。学习

由于在存储器中含有大量的存储单元,每一个存储单元能够存放8个二进制位,因此存储器的容量是以字节为基本单位的。编码

每一个英文字母要占一个字节,一个汉字要占两个字节。操作系统

其它经常使用的单位还有千字节(Kilobyte,简称K或者KB,1KB等于1024B)、兆字节(Megabyte,简称M或者MB,1MB等于1024KB)和吉字节(Gigabyte,简称G或者GB,1GB等于1024MB)。内存

说道字节确定要提到字符,那么这二者之间又是怎么回事呢?字符串

字符:
人们使用的记号,抽象意义上的一个符号。如 '1', '中', 'a', '$', '¥', …… it

字节:
计算机中存储数据的单元,一个8位的二进制数,是一个很具体的存储空间。如 0x01, 0x45, 0xFA, …… 字符编码

区别:经过编码,具体把某一个字符编码成了哪几个字节,咱们只须要知道“编码”的概念就是把“字符”转化成“字节”。也就是说,字符是经过字节来实现的。二进制

 

内存:
程序和数据日常存储在硬盘等存储器上,无论你开机或关机了,它们都是存在的,不会丢失。硬盘能够存储的东西不少,但其传输数据的速度较慢。因此须要运行程序或打开数据时,这些数据必须从硬盘等存储器上先传到另外一种容量小但速度快得多的存储器,以后才送入CPU进行执行处理。这中间的存储器就是内存。程序

不管何种存储器,软盘、硬盘、光盘或者内存,都有地址。由于它们要存储数据,因此就必须按必定的单位的数据分配一个地址。有了地址,程序才能找到这些数据。这很好理解,想一想大家家为何要有门牌号便可。

学习编程,必须对内存的地址有一个透彻的理解。咱们编程中的每一行代码,代码中用到的每一个数据,都须要在内存上有其映射地址。固然,咱们并不须要掌握内存是如何进行编址,那是计算机系中的另一门课:操做系统的事了。

 

 

内存地址:
计算机把全部的信息都给数字化了,因此它知道自已把一个数据,一条命令记到了内存中的哪一个(些)位置。
看下面的例子:
若是让计算机在内存里记住“丁小明”这个名字,能够示意为:



 

在第一行中,每一格表示一段内存,而格子里的内容是这段内容记下的数据;第二行中每一格内数字就是对应的内存的地址。
可能有人会啄磨:为何一个“丁”字(“小”“明”两字也同样)占用两个内存地址呢?这是由于汉字在一个地址(位置)里呆不下,必须放在连续的两个地址空间内。那么,什么东西能够放在单独的一个内存地址里呢?像英文的里字母,好比’A’, 像阿拉伯数字:好比’1’,能够,并且就是放在一个内存地址里。假设有一字符串“ABC”,被记在内存里,可示意为(此次咱们假设从内存地址2000H处记起):


 

如今咱们提几个问题:

计算机记住”丁”字的内存地址是多少? 答案是:1000H。请见上图

 

咱们一直在说,在计算机中,全部信息都被数字化为2进制的0、1,因此,“丁小明”这个名字被也应该是一串:0001 0010 0111 0101……,但是在中图所画出的,计算机内存里记的,还是“丁小明”三个字啊。

下面是解释,咱们只举一个字”丁”讲解。咱们假设在那一串里的 0001 0010 0111 0101 对应的是 “丁” 字,那么有:



 
让咱们把字母’A’对应的图也画出来:



 
 在上面的两个图中:

第一行分别是“丁”和“A”,它是给人看的。

第二行则是一串的的0和1,这才是计算机内存中实际存储的数据。

第三行是内存的地址。并非每一个0和1所占的位置都被编上地址。而是每8个才拥有一个地址。

关于第三行,你能够这样理解,门牌号是一个家庭分配一个,每家每户内还有客厅卧室,这些就没有地址了。

 

可见:

‘丁’的确是由一串0、1组成的。更确切地,从图上能够看出‘丁’是由16位0和1组成。这16数都存放在2个内存地址里。

‘A’也同样,它是由8位0、1组成的。占1个内存地址。

 

总结:内存地址是内存当中存储数据的一个标识,并非数据自己,经过内存地址能够找到内存当中存储的数据。