Puede un procesador de 32 bits realmente abordar 2 ^ 32 ubicaciones de memoria?
Siento que esta podría ser una pregunta extraña / estúpida, pero aquí va ...
En la pregunta ¿Es NULL en C requerido / definido como cero?, se ha establecido que elNULL
puntero apunta a una ubicación de memoria no direccionable, y también queNULL
es0
.
Ahora, supuestamente un procesador de 32 bits puede abordar2^32
ubicaciones de memoria.
2^32
es solo el número de números distintos que se pueden representar con32
bits. Entre esos números está0
. Pero desde0
, es decir,NULL
, se supone que no apunta a nada, ¿no deberíamos decir que un procesador de 32 bits solo puede abordar2^32 - 1
ubicaciones de memoria (porque la0
se supone que no es una dirección válida)