|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
19.06.2024, 23:22 | #1 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 662
|
Вычисление корня "вручную"
Зайду с объяснения зачем это надо.
Есть переменная Int64, но я не нашел ее "положительного" аналога в виде некоего Word64 (Если говорить о 32 разрядном Delphi 7) Но немного открыв основы asm вставок понял, что в целом, через asm процедуры вполне себе можно использовать Int64 как Word64. А можно даже просто массив LongWord любой длины, который использовать как одно единое суперчисло. Простые asm процедуры вполне справляются с прибавлением, отниманием, умножением. Деление сложнее, но тоже реализуемо. Процедуру перевода числа в строку (для вывода на экран) и строки в число тоже можно за два экрана текста. И вот возникает вопрос: а как высчитать корень из такого числа? |
20.06.2024, 00:06 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,674
|
Корень это не целочисленная операция.
E-Mail: arigato.freelance@gmail.com
|
20.06.2024, 01:58 | #3 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,897
|
Ваше объяснение ничего не объясняет.
Деление тоже не целочисленная операция. Но ТС похоже где-то нарыл алгоритм деления на ассемблере без использования сопроцессора. Теперь хочет нарыть алгоритм вычисления корня без использования сопроцессора. А это действительно возможно. |
20.06.2024, 09:04 | #4 | |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,658
|
Цитата:
А для корня - можно посмотреть хотя бы (если не заблокирован доступ к Вики ) https://ru.wikipedia.org/wiki/Итерац...формула_Герона |
|
20.06.2024, 10:36 | #5 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,674
|
Деление может быть целочисленным. То есть когда и аргументы целые, и результат целый. А вот корень дает вещественный результат. А потому странно говорить о корне применительно к целым числам. Int64 приводится к Double или Extended, дальше считается корень, результат также будет Double.
Нет, конечно, есть Целочисленный квадратный корень, но вряд ли это именно то, что нужно автору. E-Mail: arigato.freelance@gmail.com
|
20.06.2024, 14:32 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,658
|
"Ты что потерял, моя радость?" - кричу я ему,
А он отвечает: "Ах, если б я знал это сам" © https://yandex.by/video/preview/6084412523451799985 2:39 Последний раз редактировалось digitalis; 20.06.2024 в 14:37. |
22.06.2024, 20:09 | #7 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 662
|
А как-то вообще можно увидеть, как устроен оригинальный sqrt?
|
22.06.2024, 21:22 | #8 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,897
|
Можно в модуле system. Но вам это будет неинтересно.
|
22.06.2024, 22:06 | #9 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 662
|
Я открыл system но там его не нашел
|
22.06.2024, 22:26 | #10 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 662
|
Единственное что мне пришло на ум - это как-то так
Это черновик кода, который для быстродействия лучше перевести на asm Использует метод половинного деления Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо написать "таймер", который будет запускаться при нажатии кнопки "Start", приостанавливаться на "Pause", и сбрасываться на "Reset" | billiejean78 | JavaScript, Ajax | 1 | 03.09.2021 08:58 |
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" | Бахтиёр1916 | Windows | 1 | 05.04.2017 12:53 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Вычисление квадратного корня вручную | 6AZblJlb | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 16.11.2011 04:02 |
Как "натянуть" сайт написанный вручную на CMS ? | zlo_999 | HTML и CSS | 3 | 01.02.2011 09:57 |