需要多少位来寻址这么多的内存?

问题描述 投票:2回答:4

[我正在学习编程基础知识课程,目前我正在学习有关位的计算机组织和操作-CPU(ALU,CU,寄存器等)如何工作的章节。

我对二进制语言有很好的理解。我了解符号/幅度格式/ 1的补码,2的补码等。

[在书中,我了解到半字节= 4位,接下来8位= 1字节是一个单词-通常按组:8位,16位,32位或64位(依此类推),以及所有这对我来说很有意义。这是我的作业问题,这让我感到困惑:

“一台计算机有64 MB的内存,每个字为4个字节。需要多少位来寻址内存中的每个字?”

嗯,我现在很困惑。这本书只是告诉我,一个字通常是8的倍数。但是我知道1字节= 8位,所以既然有4字节,而1字节= 8字节,那么认为4字节x 8位= 32位是否正确?这是答案吗?

byte bits
4个回答
5
投票

1位地址可以寻址两个字(0、1)。

2位地址可以寻址四个字(00、01、10、11)。

3位地址可以寻址8个字(000、001、010、011、100、101、110、111)。

第一个答案:您有几个字?然后回答:您的地址需要多少位才能寻址?


3
投票

64MB = 67108864字节/ 4字节= 16777216个字在内存中,因此每个字都可以24位寻址(第一个字的地址为000000000000000000000000,最后一个字的地址为111111111111111111111111)。同样将2提升为24 = 16777216,因此需要24位来寻址存储器中的每个字。

要求是用一个地址(以位为单位来表示每个存储字,以便可以表示每个字。

例如,要表示4个单词,您需要4个地址,将2提升为2等于4,因此需要两个位。 00是第一个单词的地址,01是第二个单词的地址,10是第三个单词的地址,11是第四个单词的地址。]

对于8个字,您需要8个地址,而2升为3就是8,所以需要3位。 000、001、010、011、100、101、110、111是8个地址。


2
投票

1个字节= 8位,所以既然有4个字节,而1个字节= 8位,那么认为4个字节x 8个位= 32位会正确吗?就是答案???


0
投票

公式为:

© www.soinside.com 2019 - 2024. All rights reserved.