今天在做东西的时候遇到的一个问题, 结果是65536,一开始搞得很迷糊,不过后来才搞明白。此处记载下来;
其实迷糊的原因很明显,将8位的微机系统 和 以 16位 来表示地址 其中的8位和16位搞混淆了。这里所谓的8位的微机系统实际上是指每个存储单元中所能存储的二进制代码的位数,而16位事实上指的是表示该存储单元的地址位。
也就是说,二进制代码所表示的地址位实际上只是一个存储单元的编号而已。
如果将存储体看做一个高楼大厦,那么这个大厦中的每个房间就是一个存储单元,既然大楼里有这么多的房间,那么必然就需要对每个房间进行编号,这样才能仅凭一个编号就可以找到指定的房间。
而这个房间的编号也就是每个存储单元所对应的地址位。是与机器字长无甚关联的,说到底这只与每个芯片上存储单元的集成度有关。那么此处既然用16位来表示了每个地址单元(房间编号),我们就可以轻易的得出用16位二进制码总共可以表示2^16 个地址编号,那么对应起来也就是总共能对应2^16个存储单元, 即65536个。
而方才所提到的机器字长,则可以看成是每个房间中的床位总数。因为每个存储单元中存放的都将是一个二进制串。
例如二进制串10111011是放在同一房间的(也就是存储单元),则该房间需要8个床位来容纳这8位二进制数据,从1号床到8号床他们所存放的值依次可以是1、0、1、1、1、0、1、1。
因此不难理解,8位的微机系统实际是指该存储单元中所能存放的二进制数,而与地址位的位数没有关联。
以上是自己所理解的,可能理解并不算太透彻,若其中的理解有错差别,还望得到各位的指点。