Может ли 32-битный процессор действительно адресовать 2^32 области памяти?

Я чувствую, что это может быть странный/глупый вопрос, но вот так...

В вопросе Должен ли NULL в C быть нулем?, было установлено, что указатель NULL указывает на безадресную область памяти, а также что NULL равен 0.

Теперь, предположительно, 32-битный процессор может адресовать 2^32 ячеек памяти.

2^32 - это только количество отдельных чисел, которые могут быть представлены с помощью 32 битов. Среди этих чисел есть 0. Но поскольку 0, то есть NULL, должен указывать на ничто, не следует ли сказать, что 32-битный процессор может адресовать только 2^32 - 1 мест памяти (поскольку 0 не должен быть действительным адресом)?

8
задан Community 23 May 2017 в 10:08
поделиться