реклама на сайте
подробности

 
 
> Вычислить офсет в памяти.
Jenya7
сообщение Apr 21 2016, 05:55
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Есть внешняя память. 512 страниц. каждая страница 64 байт.
на каждой странице первые 4 байта - метка и потом 5 записей по 12 байт.
у меня есть структура в которой я записываю номер текущей страницы и номер текущей записи на странице.
нужно считать например N-ю запись от текущей. сижу думаю над алгоритмом. ничего красивого в голову не приходит. может кто подскажет интересное решение?

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jenya7
сообщение May 1 2016, 07:02
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



ну если конкретно по моему вопросу то можно так.
Код
#define HEADER_SIZE 4
#define RECORD_SIZE 12
#define LOGS_PER_PAGE   5

uint32_t offset = (log_to_read * RECORD_SIZE) + (HEADER_SIZE * ( log_to_read / LOGS_PER_PAGE));
uint32_t new_addr = addr - offset;

чего только ни придумаешь чтоб не учить С++. sm.gif
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th June 2025 - 15:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016