Na maioria das arquiteturas, a memória endereçamento é feita em bytes.
Um campo de endereço de 32 bits permite que você especifique 2 ^ 32 (cerca de 4,3 bilhões) endereços.
Isso significa que uma CPU que usa endereçamento de 32 bits e endereça a RAM em termos de bytes pode endereçar nativamente 2 ^ 32 bytes, que é igual a 4 GiB (gibibytes).
Em muitas arquiteturas atuais, há outras questões a serem consideradas, como o alinhamento do endereço de solicitação de memória, que limita quais endereços podem ser usados para o acesso real. Mas isso não muda a quantidade de RAM que a CPU pode endereçar, apenas muda como ela pode ser endereçada, e a menos que você esteja trabalhando muito perto da CPU, isso é normalmente abstraído do programador, e certamente do usuário.
Existem maneiras (como a Extensão de Endereço Físico, PAE) para contornar a limitação imposta pela largura de endereço de 32 bits, da mesma forma que as CPUs de 16 bits usaram várias técnicas (incluindo segmentação) para lidar com mais de 64 KiB (2 ^ 16 bytes) de RAM. Além disso, se o endereçamento fosse feito em uma unidade diferente (por exemplo, palavras de 16 bits em vez de bytes de 8 bits), a quantidade real de memória que poderia ser endereçada mudaria de acordo; Por exemplo, usando palavras de 16 bits em vez de bytes de 8 bits, uma largura de endereço de 32 bits permitiria o endereçamento de 8 GiB, porque cada endereço realmente endereça dois bytes.