主存是计算机的一部分,程序和数据就存在那里。虽然术语“storage”越来越多地用来表示硬盘存储,一些计算机科学家(尤其是英国人)更偏向于使用单词store或者storage而不是memory来表示内存。没有了处理器读写信息所需的内存,世界上就没有存储程序的数字计算机了。
内存的基本单元是二进制数字,称作比特。一比特包含一个0或一个1。它是最简单的单元。(一个只存储数字0的设备很难形成一个基础的内存系统;至少需要两个值。)
人们常说计算机使用二进制算数的原因是因为它“效率高”。他们想表达的意思(虽然他们几乎没有意识到)是数字信息可以被离散地存储在一些连续的物理设备上,比如电压电流。被分离的信息越多,相邻值之间的间隔越小,内存也就越不可靠。二进制系统只被分成两个值。因此,这是编码二进制信息最有效的方法。如果你对二进制不熟悉,请看附录A。
一些计算机,比如大型IBM商用机,除了二进制之外也会采用十进制。有一个小技巧是,用4位存储一个十进制数字,使用BCD(Binary Coded Decimal)编码。4位能提供16种组合,0到9十位数字之外,还有六个组合没有用到。数字1944的十进制和纯二进制表示如下:
十进制中16位可以存储数字0到9999,给出10000种组合,尽管16位的纯二进制数能存储65536个组合。出于以上原因,人们认为二进制更有效率。
然而细想一下,如果几个手艺娴熟的年轻电子工程师发明了一个高度可靠的电子设备,可以通过把区域划分为0到10伏10个区间,直接存储数字0到9。四个这种设备可以存储任意从0到9999的十进制数字。四个这种设备提供10000总组合。它们也可用于存储二进制数,四个这种设备仅能存储16个组合。有了这种设备十进制系统能更有效率。