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

 
 
> Помогите придумать алгоритм деления!, 1/n
marcinio
сообщение Dec 15 2007, 21:50
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 42
Регистрация: 3-07-07
Пользователь №: 28 861



Задание примерно такое:
1<n<10000, 1<x<10000, n,x - целое число
надо узнать значения 1/n и x/n, n будет инкрементироваться каждую 0,001с, х выщитает программа
Как мне етого добиться с Atmega8535? 05.gif

Сообщение отредактировал marcinio - Dec 15 2007, 21:58
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
marcinio
сообщение Dec 16 2007, 13:36
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 42
Регистрация: 3-07-07
Пользователь №: 28 861



Вот я посмотрел такой алгоритм (кстати - столбик smile.gif ) НО я никак не могу его понять:
1 в каких тогда случаях остаток - делитель будет >0 ???? если уж остаток в начале 0, тогда при любых сдвигах он же всёравно будет 0, а тогда остаток - делитель всегда будет ниже 0...
2 я посмотрел книгу Кнута - понял что на данный момент у меня нет столько времени, чтобы это всё прочитать и понять smile.gif потому - что нам даёт сдвиг?

Алгоритм подпрограмм деления целых беззнаковых чисел (Рис. 3) можно представить в виде последовательности следующих шагов:
1 Очистить остаток и перенос
2 Загрузить в счетчик цикла число 9
3 Делимое сдвинуть влево с использованием переноса.
4 Уменьшить на 1 счетчик цикла
5 Если счетчик цикла равен 0, то выйти из подпрограммы
6 Остаток сдвинуть влево с использованием переноса
7 Вычесть делитель из остатка
8 Если остаток отрицательный, прибавить обратно делитель, сбросить перенос и идти к шагу 3.
9 Установить перенос и идти к шагу 3.

R15 "drem8u" - остаток
R16 "dd8u"-делимое "dres8u" - результат
R17 "dv8u"-делитель
R18 "dcnt8u"- счетчик цикла
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
Николай Z
сообщение Dec 16 2007, 13:50
Сообщение #3


Местный
***

Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930



Цитата(marcinio @ Dec 16 2007, 16:36) *
2 я посмотрел книгу Кнута - понял что на данный момент у меня нет столько времени, чтобы это всё прочитать и понять smile.gif потому - что нам даёт сдвиг?

Там все и не надо читать. Там только нужно посмотреть програмку умножения и/или деления и истратить немного времени, чтобы разобраться в командах т.н. "MIX" и ничего больше.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:54
Рейтинг@Mail.ru


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