众所周知,当一个程序运行的时候,无论是该程序中的代码,还是该程序中将要用到的数据,都必须先送入内存,然后才能够被CPU处理。内存中最基本的信息单位是“位”(bit),一个“位”可以存放一个二进制的“0”或“1”,因此一个位可以用“0”或“1”来代表2个信息。但是这样的信息单位太小了,现实生活中的信息非常多,用一个位根本没有办法来表示程序所要处理的全部信息。因此在实际的计算机系统中,是将8个二进制“位”合在一起作为信息的基本单位,这就是字节(byte),即一个字节代表8个二进制“位”,总共可以表示28个信息,如大家所熟知的ASCII码,就是用一个字节来表示一个字符。现在的问题是,对于计算机来讲,它是如何区分内存中成千上万的字节的?如1G的内存中大约包含109个字节,系统如何知道自己需要的数据在哪一个字节中。实质上,作为区分的标志,系统为每一个内存字节都赋予了一个唯一的编号,这个编号就是所谓的内存“地址”,也就是说,系统是通过字节的“地址”来区分正在使用的是哪个字节。由于单个字节最多只可以表示256种信息,因此有时候使用单个字节也满足不了信息表示的需要,此时系统中也可以将多个字节合在一起用来表示一个完整的信息(这多个字节成为一个整体,称为一个存储单元)。例如在Visual C++6.0中,一个int型数据在内存中就是用连续的4个字节来表示的,这种情况下一般会用多个字节的首地址(即多个连续字节中第一个字节的地址)来表示这个存储单元的“地址”。在CPU需要使用数据时,首先会通过地址总线将所需要的内存地址传送给内存,内存在接收到该地址后,找到其相对应的内存单元,然后将其中保存的数据通过数据总线传送给CPU,使得CPU能够完成运算。(www.xing528.com)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。