Math 将内存地址转换为GiB字节

Math 将内存地址转换为GiB字节,math,processor,Math,Processor,字节可寻址32位计算机可以寻址2^32=4294967296个地址 为什么说它是4吉比特(GiB) 如果我有2^32个地址,它们是多少位?每个地址是否也有32位长?如果是这样的话,我不明白为什么它是4千兆字节,因为它将是2^32*32位=>2^32*32/8字节,最后是(2^32*32/8)/2^30千兆字节(考虑到1千兆字节=2^30字节) 你能解释一下我怎么知道2^32地址是4吉比特的吗?就我们的目的而言,地址是32比特长的。地址可以采用2^32个唯一值。每个唯一地址引用一个字节。如果您有一

字节可寻址32位计算机可以寻址2^32=4294967296个地址

为什么说它是4吉比特(GiB)

如果我有2^32个地址,它们是多少位?每个地址是否也有32位长?如果是这样的话,我不明白为什么它是4千兆字节,因为它将是2^32*32位=>2^32*32/8字节,最后是(2^32*32/8)/2^30千兆字节(考虑到1千兆字节=2^30字节)


你能解释一下我怎么知道2^32地址是4吉比特的吗?

就我们的目的而言,地址是32比特长的。地址可以采用2^32个唯一值。每个唯一地址引用一个字节。如果您有一个所有可能地址的列表,那么它的长度(32位/地址)*(2^32地址)=32*2^32

但是,您仍然只能引用2^32字节的内存。2^32=2^2*2^30=4*2^30字节。因为2^30=千兆字节,这意味着4千兆字节


您的错误似乎是将保存所有2^32地址所需的内存量(需要128 GB)与可被所有2^32地址引用的内存量混为一谈(这等于寻址单位的2^32倍-我们假设为字节,但如果您的机器以32位为单位工作,则可以使用32位地址空间引用16 GB…尽管我相信所有((通常))机器都使用字节可寻址内存).

对于32位地址,您有2^32个最小可寻址单元的地址,通常是一个字节;因此2^10=1024,2^2=4,因此基本数学表示:

2^32字节=2^2*2^10*2^10*2^10字节=4*1024*1024*1024字节

或者,重写:

4*1024*1024Kb

或:

4*1024Mb

或4Gb