Windows 为什么32位等于4G字节,而不是4G字节?

Windows 为什么32位等于4G字节,而不是4G字节?,windows,memory,operating-system,32-bit,Windows,Memory,Operating System,32 Bit,假设我们有一个32位地址,所以每个位可以是1或0 因此,组合的总数等于2^32 因此,我们可以表示2^32个地址(不带单位) 但是为什么人们说32位地址可以代表2^32字节的地址(为什么是“字节”地址) 我已经读过了 它不会变成2^32*8位地址吗?为什么人们可以在末尾加上“byte”?因为内存是字节可寻址的,而不是位可寻址的 地址0x100表示单个字节,地址0x101表示以下字节。每个地址指向一个字节。在内存中,寻址的不是单个位,而是字节 因此,32位将为您提供2^32个项目的可寻址空间,每个

假设我们有一个32位地址,所以每个位可以是1或0

因此,组合的总数等于2^32

因此,我们可以表示2^32个地址(不带单位)

但是为什么人们说32位地址可以代表2^32字节的地址(为什么是“字节”地址)

我已经读过了


它不会变成2^32*8位地址吗?为什么人们可以在末尾加上“byte”?

因为内存是字节可寻址的,而不是位可寻址的


地址0x100表示单个字节,地址0x101表示以下字节。

每个地址指向一个字节。在内存中,寻址的不是单个位,而是字节


因此,32位将为您提供2^32个项目的可寻址空间,每个项目都是一个完整字节。是的,它可以使每个地址指向一个特定的位,但不是,他们使每个地址指向一个字节。

好的,我想我现在明白了,2^32只是表示地址的数量,但在操作系统中,基本单位是字节。如果我们有2^32地址,那么我们可以表示2^32字节的地址?假设你有4位地址。每个地址将是介于0和15(含15)之间的16(2^4)个值中的一个。这些数字(地址)中的每一个都是指内存中16个字节(不是位)中的一个。因此,在本例中,内存大小为16字节。如果您有32位,则最多可以有2^32字节(或4GB)的可寻址内存。您有2^32个可寻址单元。现代处理器是字节可寻址的,因此可以得到2^32个字节。有些旧处理器的可寻址单元不是字节。例如,开发UNIX的原始计算机是可字寻址的,因此36位整数可以访问2^36个字,而不是2^36个字节。