2010-09-14 4 views
1

Предположим, у нас есть 1kb-страницы (2^10). Адрес 512. Для того, чтобы найти число страниц, мы делаем:Расчет номеров страниц и смещений

512/1024 = 0,5 (поэтому это на странице 1)

Чтобы найти смещение мы делаем (адрес - (страница * PAGE_SIZE)):

512 - (1 * 1024) = -512

отрицательное смещение невозможно, это?

+0

Или это должно быть 0 смещение 512? –

+0

Это всего лишь один пример того, почему некоторые языки программирования индексируются с нуля. Дальнейшее чтение. Edsger W. Dijkstra «Почему нужно начинать нумерацию с нуля» http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html –

+0

Это интересно, спасибо! –

ответ

3

Ваш адрес находится на странице 0, а не на странице 1. Вы правы, что отрицательное смещение невозможно.

+0

Дох, я только что осознал минуту назад. Я чувствую себя глупо. Итак, страница равна 0, а смещение - 512? –

+0

@Google, да, это правильно. –

+0

Спасибо большое, я чувствую себя глупо! –

Смежные вопросы