Почему указатели в 64-битной архитектуре могут указывать адреса, которые вообще не существуют? - PullRequest
0 голосов
/ 27 июня 2018

Указатель в 64-битном архитектуре занимает 64 бита в памяти. Для каждого другого значения указателя указывается другой байт, это означает, что он может указывать один из разных 2 ^ 64 адресов байтов.

2 ^ 64 байта = 2 ^ 54 КБ = 2 ^ 44 МБ = 2 ^ 34 ГБ = 2 ^ 24 ТБ = 16777216 ТБ

но ни у одного из флешек даже жестких дисков нет такого большого пространства.

Так почему же это так? Разве указатели не могли быть меньше? Или я не прав?

1 Ответ

0 голосов
/ 27 июня 2018

уверен, что они могут быть меньше ... в основном, если у вас есть индивидуально адресуемые байты ... тогда все пространство ОЗУ должно помещаться внутри адресного пространства указателя.

, поэтому 32-битная поддержка поддерживает до 4 ГБ или 2 ГБ, если есть какой-либо бит флага ... этого недостаточно для современных вычислений ... следующий размер может быть 33 , или 34 , или 48 ... но 64-битным теперь имеет собственную ширину ... и ни одно число больше 32 не делится на 64 более чем один раз ... так что 64-битный (или 63, если вам нужен какой-то один бит флага) вполне логично

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...