User Tag List

Показано с 1 по 10 из 32

Тема: Квадратный корень на i8080

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    290
    Поблагодарили
    216 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от shoorick Посмотреть сообщение
    портировал данный код из другой известной книжки
    По структуре очень похож на то, что я сделал выше для квадратного. Наверное, несложно будет модифицировать моё творение, чтобы оно кубический корень извлекало.

    Вот моё в таком-же виде:
    Код:
    int isqrt(unsigned x){
      int s;
      unsigned y,b;
      s=14;
      y=0;
      while (s>=0) {
        y = 2*y;
        b = (2*y+1)<<s;
        if (x>=b) {
          x = x - b;
          y = y + 1;
        }
        s = s - 2;
      }
      return y;
    }
    - - - Добавлено - - -

    Только вот вычислять 3*y*(y+1)+1 вместо 2*y+1 чуточку сложнее

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

    Интересно, а можно вывести формулу для b = ???, чтобы оно например корень 5-й степени извлекало?

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

    2*y+1 = (y+1)^2 - y^2
    3*y*(y+1)+1 = 3*y^2 + 3*y + 1 = (y+1)^3 - y^3
    Что у нас там для пятой степени получается?

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

    (y+1)^5 - y^5 = 5*y^4 + 10*y^3 + 10*y^2 + 5*y + 1 = 5*y*(y*(y*(y+2)+2)+1)+1
    Щас проверим

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

    Ха, работает
    Код:
    int isqrt5(unsigned x){
      int s;
      unsigned y,b;
      s=20;
      y=0;
      while (s>=0) {
        y = 2*y;
        b = (5*y*(y*(y*(y+2)+2)+1)+1)<<s;
        if (x>=b) {
          x = x - b;
          y = y + 1;
        }
        s = s - 5;
      }
      return y;
    }
    Разрядность для тестов увеличил.

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

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

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

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

Похожие темы

  1. PMI-80 - одноплатник на i8080
    от rw6hrm в разделе Разное
    Ответов: 72
    Последнее: 02.09.2022, 12:27
  2. Совместимость Z80 и i8080 (580ВМ80)
    от Dmitry Dubrovenko в разделе Для начинающих
    Ответов: 50
    Последнее: 08.05.2016, 09:54
  3. Код эмуляции i8080 на С
    от medvdv в разделе Эмуляторы отечественных компьютеров
    Ответов: 15
    Последнее: 27.03.2015, 03:43
  4. Квадратный корень
    от Destr в разделе Программирование
    Ответов: 29
    Последнее: 25.03.2012, 11:14
  5. Эмулятор i8080
    от Higgins в разделе Разное
    Ответов: 2
    Последнее: 20.05.2011, 11:43

Ваши права

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