Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертация логической адресации в физическую, Конвертация логической адресации в физи 
:(
    Опции темы
wachiv
Дата 26.7.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Всем привет.

Имеется Сегмент памяти длина от 0 до 49, ширина от 0 до 9.

нужно написать метод функцию которая конвертирует логическую адресацию в физическую.

Я пока что так сказать чайник, и изобретаю велосипед.

Объясните, пожалуйста, сам алгоритм, где копать , где читать. 
Мне интересна любая информация об этом. 
PM MAIL   Вверх
bsa
Дата 26.7.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Код
address = y * 10 + x

y от 0 до 49, х от 0 до 9
PM   Вверх
wachiv
Дата 27.7.2007, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Спасибо большое.
думаю, это поможет мне понять эту задачу.
PM MAIL   Вверх
wachiv
Дата 27.7.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Сегмент (длина 0..49, ширина 0..9)

Как мне это практически сделать, т.е. каждая строка сегмента (как я понимаю имеет свой логический адрес). Как этот адрес можно посмотреть, чтоб после конвертации сравнить и увидеть результат задачи.
Мне не с кем посоветоваться, может вопросы не профессиональны, но это единственная у меня возможность посоветоваться.
Спасибо.

#include <iostream>

using namespace std;


int main(int argc, char** argv)
{
        int y,adr;
    
        int x=0;
    for(y=0;y<=49;y++)
    {
        adr=y*10+x;
        cout<<"adr= "<<adr<<endl;
        x++;
        if (x==10)
        {
        x=0;    
        }
        
        
    }
    
}


adr= 0
adr= 11
adr= 22
adr= 33
adr= 44
adr= 55
adr= 66
adr= 77
adr= 88
adr= 99
adr= 100
adr= 111
adr= 122
adr= 133
adr= 144
adr= 155
adr= 166
adr= 177
adr= 188
adr= 199
adr= 200
adr= 211
adr= 222
adr= 233
adr= 244
adr= 255
adr= 266
adr= 277
adr= 288
adr= 299
adr= 300
adr= 311
adr= 322
adr= 333
adr= 344
adr= 355
adr= 366
adr= 377
adr= 388
adr= 399
adr= 400
adr= 411
adr= 422
adr= 433
adr= 444
adr= 455
adr= 466
adr= 477
adr= 488
adr= 499

PM MAIL   Вверх
bsa
Дата 27.7.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



ой. Что это?!? Если тебе надо перебрать все адреса сегмента, то это делается так:
Код
#include <iostream>
int main()
{
       for(int y = 0; y <= 49; ++y)
           for(int x = 0; x <= 9; ++x) {
                  int addr = y * 10 + x;
                  std::cout << addr << std::endl;
           }
}
Вывод будет от 0 до 499 включительно с шагом 1
PM   Вверх
wachiv
Дата 27.7.2007, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Спасибо!
Я как понял... Надо как то вывести адреса строк сегмента, а потом после конвертации визуально сравнить с результатом конвертации (из лог в физ)
Как увидеть эти ревльные адреса, чтоб я мог сам увидеть результат задачи?


Например, 
1.Сначала вывести адреса строк сегмента
2. провести конверт из лог в физич
3. визуально сравнить что получилось

Может есть какая то функция которая выводит исхолные адреса.
Потом их запомнить и уже со значениями этих адресов провести конвертацию


 

PM MAIL   Вверх
bsa
Дата 27.7.2007, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Одно из двух, или я тебя не понимаю, или ты условие задачи.
Что такое в твоем понимание сегмент? Сегмент в компьютерной терминологии не подразумевает "ширины". Только длину - он одномерный. То о чем ты говоришь - двумерное.
Может у тебя массив двумерный? Тогда проверка существует. Статический двумерный массив определяется в твоем случае, как char array[10][50]. Для проверки используй операцию: &array[x][y] == &array[0][0] + (y*10 + x); она должна быть истинна, если я, конечно, не перепутал расположение размерностей.
PM   Вверх
wachiv
Дата 27.7.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 26.7.2007

Репутация: нет
Всего: нет



Верно,...  я не совсем понимаю задачи.

Стараюсь разобраться.

Данные, которые поступают по-строчно с паузой в 4 миллисек и записываются в сегмент, имеют размер от 0..9 (каждая строка) и  заполняют сегмент длиною 0..49.

Эти строки 0..9, как результат однострочного изображения с камеры.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1444 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.