Важная информация

User Tag List

Страница 88 из 95 ПерваяПервая ... 848586878889909192 ... ПоследняяПоследняя
Показано с 871 по 880 из 947

Тема: ЭТЮДЫ

  1. #871
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    107
    Спасибо Благодарностей получено 
    252
    Поблагодарили
    157 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Используется какая-то хитрость
    Единственная "хитрость" - это использование одновременно старших бит HL для делимого и младших - для частного. Трюк известный, но этого не менее хороший.
    Цитата Сообщение от Denn Посмотреть сообщение
    В сабжевом алгоритме кол-во итераций не зависит от делимого
    Я так понимаю это опечатка, т.к. именно от делимого число итераций и зависит, но не зависит от делителя. Хотя зная делитель, можно часть итераций сделать упрощенными, только для задвигания старших бит делимого в A, как в оригинале процедуры.

    - - - Добавлено - - -

    Цитата Сообщение от Denn Посмотреть сообщение
    Связи со столбиком не вижу.
    Могу расписать пример деления двух любых чисел (желательно поменьше бит), но все же надеюсь в этом нет необходимости.

  2. #871
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #872
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,910
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    244
    Поблагодарили
    167 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Я так понимаю это опечатка, т.к. именно от делимого число итераций и зависит, но не зависит от делителя.
    Нет, очепятки нет. Я расписал работу алгоритма выше. Ровно 16 итераций и ответ готов. А делимое может быть от 0 до 65535.
    Делитель фиксированный, в исходном случае = 10. Методом интуиции и научного тыка я перезаточил данный алгоритм под деление на 100, просто изменив значение регистра [C] - работает! Но как оно работает, я до сих пор не понимаю. И из-за этого уже "не сплю" второй день
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #873
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    107
    Спасибо Благодарностей получено 
    252
    Поблагодарили
    157 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Нет, очепятки нет. Я расписал работу алгоритма выше. Ровно 16 итераций и ответ готов. А делимое может быть от 0 до 65535.
    Я не писал, что от числа значащих бит делимого. Повторюсь, число итераций определяется числом бит делимого - их 16. Могу уточнить - общим числом бит делимого. Если, например, делимое будет в H, то достаточно будет 8 итераций.

    Цитата Сообщение от Denn Посмотреть сообщение
    Методом интуиции и научного тыка я перезаточил
    Цитата Сообщение от ivagor Посмотреть сообщение
    деление HL/C
    поэтому можно "перезаточить" на любой делитель от 0 до 255 просто изменив C

  5. #874
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,910
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    244
    Поблагодарили
    167 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если, например, делимое будет в H, то достаточно будет 8 итераций.
    ...
    поэтому можно "перезаточить" на любой делитель от 0 до 255 просто изменив C
    Это всё я уже понял.

    Но, не понял как оно работает! Как выполняется деление, на каком принципе?
    Делитель из делимого не вычитается. Происходит некая обработка каждого бита по отдельности, принцип вычисления каждого бита не зависит от его "веса" в делимом... не понятно.
    Если пытаться рассуждать математическими экивалентами сдвигов (умножениями на 2), то тоже не понятно... зачем 16 раз делимое умножать на два? Почему решение о вычитании делителя принимается на основании результатов накопления выталкивающихся битов?
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  6. #875
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    107
    Спасибо Благодарностей получено 
    252
    Поблагодарили
    157 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Делитель из делимого не вычитается.
    SUB C

  7. #876
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,910
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    244
    Поблагодарили
    167 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    SUB C
    Это вычитание из результата накопления старших битов, а не из исходного числа.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  8. #877
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    107
    Спасибо Благодарностей получено 
    252
    Поблагодарили
    157 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    зачем 16 раз делимое умножать на два?
    Биты из HL вдвигаются в "окошко сравнения", которое в A.
    Цитата Сообщение от Denn Посмотреть сообщение
    Почему решение о вычитании делителя принимается на основании результатов накопления выталкивающихся битов?
    Если вдвинутый фрагмент делимого больше делителя, то вычитаем. По алгоритму деления столбиком.

    - - - Добавлено - - -

    Цитата Сообщение от Denn Посмотреть сообщение
    Это вычитание из результата накопления старших битов, а не из исходного числа.
    Так работает деление в столбик.

  9. #878
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,910
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    244
    Поблагодарили
    167 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Если, например, делимое будет в H, то достаточно будет 8 итераций.
    Но для получения корректного результата прокрутить надо все 16 раз, тогда нужные биты встанут на свои места.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #879
    Guru
    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    107
    Спасибо Благодарностей получено 
    252
    Поблагодарили
    157 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Но для получения корректного результата прокрутить надо все 16 раз, тогда нужные биты встанут на свои места.
    Нет, за 8 итераций частное будет в L. Чтобы не было сомнений, я говорю про деление H/C=L

  11. #880
    Veteran Аватар для Denn
    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    1,910
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    244
    Поблагодарили
    167 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Нет, за 8 итераций частное будет в L. Чтобы не было сомнений, я говорю про деление H/C=L
    Мысль понял, но это уже как бы другой код. В исходном нужны всегда 16 итераций, и вход/выход в 8-битном варианте будут в L - я об этом.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

Страница 88 из 95 ПерваяПервая ... 848586878889909192 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Этюды: как бы написать поизящнее.
    от AndTorp в разделе Программирование
    Ответов: 5
    Последнее: 17.03.2008, 00:43
  2. Ответов: 0
    Последнее: 18.08.2006, 22:40
  3. Этюды: печать шрифтом 5x5...
    от breeze в разделе Программирование
    Ответов: 12
    Последнее: 27.03.2005, 05:21

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •