程序和数据平常存储在硬盘(硬盘是一种可记忆盘)等存储器上,不管你开机或关机了,它们都是存在的,不会丢失。硬盘可以存储的东西很多,但其传输数据的速度较慢。所以需要运行程序或打开数据时,这些数据必须从硬盘等存储器上先传到另一种容量小但速度快得多的存储器(无记忆盘),之后才送入CPU进行执行处理。这中间的存储器就是内存。
每个数据,都需要在内存上有其映射地址。内存是如何进行编址,那属于操作系统。
下面将旧课程中的有关内存地址的一段拷到这里方便理解。
内存地址:“你叫丁小明吧?”
“是的。”
“噢,你记得你的姓名,那么请告诉我你把你的姓名记在你的脑海中的哪一个位置呢?在你记着你的姓名信息的下一个位置,你记着什么?上一个位置呢?”
“啊!这我不知道。”
“你骗我!既然你记着你的姓名,你怎么会不知道把它记在哪儿呢?”计算机生气说。
是啊,依靠现在的科技力量,我们无法得知自已把一个数据记在脑海里的哪个脑细胞里。这也是人的记忆状态无法数据化的原因。计算机就不一样的,我们说过,它是什么都数字化了。所以它知道自已把一个数据,一条命令记到了内存中的哪个(些)位置。每一个位置都有编号,就像编了门牌号一样。如果让计算机在内存里记住“丁小明”这个名字,可以示意为:
丁
小
明
1000H
1001H
1002H
1003H
1004H
1005H
在第一行中,每一格表示一段内存,而格子里的内容是这段内容记下的数据;第二行中每一格内数字就是对应的内存的地址。至于为什么数字后面跟了一个字母H ,那是为了表示这是一个16进制的数。什么是16进制的数,大家现在可以不管。只要把它想成和上一节我们所讲的2进制一样即可:长有16个指头的人订出来的数。从0一直数到15,到了16才往高位进1。
可能有人会啄磨:为什么一个“丁”字(“小”“明”两字也一样)占用两个内存地址呢?这是因为汉字在一个地址(位置)里呆不下,必须放在连续的两个地址空间内。
那么,什么东西可以放在单独的一个内存地址里呢?像英文的里字母,比如’A’, 像阿拉伯数字:比如’1’,可以,而且就是放在一个内存地址里。假设有一字符串“ABC”,被记在内存里,可示意为(这次我们假设从内存地址2000H处记起):
A
B
C
2000H
2001H
2002H
现在我们提几个问题:
计算机记住”丁”字的内存地址是多少? 答案是:1000H。请见上图
在计算机记住”丁”字的内存地址后移两个最小内存地址单位,计算机记住的是哪个字:答案是:”小”。因为 1000H+2=1002H。
请同学自己对图1.3作类似的问答。
如果不再往下讲一点点,可能会使关于内存地址的这一讲的有些内容和第1章中有关2进制语言的内容看起有矛盾。
我们一直在说,在计算机中,所有信息都被数字化为2进制的0、1,所以,“丁小明”这个名字被也应该是一串:0001 0010 0111 0101……,可是在中图所画出的,计算机内存里记的,仍是“丁小明”三个字啊。
下面是解释,我们只举一个字”丁”讲解。我们假设在那一串里的 0001 0010 0111 0101 对应的是 “丁” 字,那么有:
丁
0
0
0
1
0
0
10
0
1
1
1
0
1
0
1
1000H
1001H
让我们把字母’A’对应的图也画出来:
A
0
1
0
0
0
0
0
1
1000H
在上面的两个图中:
第一行分别是“丁”和“A”,它是给人看的。
第二行则是一串的的0和1,这才是计算机内存中实际存储的数据。
第三行是内存的地址。并不是每个0和1所占的位置都被编上地址。而是每8个才拥有一个地址。
关于第三行,你可以这样理解,门牌号是一个家庭分配一个,每家每户内还有客厅卧室,这些就没有地址了。
可见:
‘丁’的确是由一串0、1组成的。更确切地,从图上可以看出‘丁’是由16位0和1组成。这16数都存放在2个内存地址里。
‘A’也一样,它是由8位0、1组成的。占1个内存地址。
用上的两个单位来表达上面的图,便是:
汉字如“丁”,在内存中,占两个字节(Byte),共16位(Bit)。
英文字母如 ‘A’在内存中,占1个字节,8位。
(这里说的是内存,其实在其它存储器中,所占空间是一致的)
下面是几个常用公式 :
1 字节(Byte) = 8位(bit)
为什么一个字节是8位?这是因为,2的8次方表示的数是128个,
位: 一个0或1称为一位(bit);
字节:连续八位称为一个字节(Byte);字节是计算机中可单独处理的最小单位。
原文出处:转自百度网页