抱歉,用另一个问题回答一个问题...
在规定范围内可用的地址数量是否也包括那些范围限制器?
例如(用十进制来说明我的观点)起始地址为 5,结束地址为 10。仅通过减法,即结束地址减去起始地址 (10-5),我们得到的范围为 5。但实际上有六个唯一地址在 5,6,7,8,9,10 的范围内(所以我们应该在 Julie 的原始问题中的减法结果中加 1?)
此外,内存地址大小与实际内存大小。我们是在谈论单个内存位置的数量还是可用于存储数据的内存大小(应该考虑每个位置的大小)?
如果它只是内存位置,那么我们就差不多完成了(我认为这被称为内存地址大小)。只需要解决问题的MB部分(我会在最后谈到这个问题)
如果它是可用的存储空间,这应该包括内存的每个可寻址部分的大小,例如每个地址位置保存一个大小未知的数据块。假设它是每个内存位置 1 字节 (1B) 的数据,而不是我上面的示例,则意味着内存大小为:6(内存位置)乘以 1 字节(每个内存位置的容量),总内存大小为 6B
所以根据我的逻辑,范围 1 的原始问题的答案应该是 01000000hex (range1 = FDFF FFFF-FD00 0000 + 1 = 01000000h )。
至于该范围的内存大小,这是我真正感到困惑的地方......它是特定数量的内存位置,即 1000000h,每个位置的大小未定。那么为什么要以 MB 或 GB 表示呢。如果您确实知道每个内存位置的大小(并将位置数乘以每个位置的大小,那么您就有该范围的内存大小,并且可以用数字形式表示。
虽然我们在这里,但我真正感到困惑的是 MB、GB 等的使用。它经常被引用为每个前缀等于 1024 的倍数,例如 1KB = 1024Bytes、1MB = 1024kB 等,但 IEC 首选约定是基于 ISO 标准(根据我刚才的谷歌搜索),它说 Kilo (kB) = 1000,Mega (MB) = 1000000 等。
因此,将每个位置的未知大小放在一边,并将 1000000h 转换为十进制即 16,777,216,答案是:
- 16MB (16777216/1024/1024=16)我怀疑这是老师要的答案
- 16.777216MB(根据ISO标准)
- 16 MB(根据联合 IEC/ISO 标准 - IEC 80000-13)
顺便说一句,谷歌搜索只是教育了我(可能被认为是最近和部分)关于千字节和兆字节......如果你有兴趣,请查看https://en.wikipedia.org/wiki/Kilobyte