![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Деление [D7, Win95/98]
M-Alex © (2004-09-22 15:41:00)Можноли делить числа в Delphi без div чтобы с остатком и без использования mod
Zhekson (2004-09-22 23:32:00) [1]Всё M-Alex, говори спасибо. Делим без div, c остатком и не используем mod.
Zhekson (2004-09-22 23:25:00) [2]
var
a,b,c: real;
begin
c := a / b;
end;
это мой вариант 100% рабочего ответа, но опять же - если я правильно вопрос понял.
Sha (2004-09-22 23:10:00) [3]> DiamondShark © (22.09.04 17:10) [25]
Умножение быстрее деления.
Anatoly Podgoretsky (2004-09-22 17:13:00) [4]DiamondShark © (22.09.04 17:10) [25]
В России учеба началась
DiamondShark (2004-09-22 17:10:00) [5]Ну и наконец, мой любимый вопрос: А зачем?
Anatoly Podgoretsky (2004-09-22 16:29:00) [6]Что то вас понесло, вспомните школу
Sandman25 (2004-09-22 16:21:00) [7][22] Sha © (22.09.04 16:19)
Спасибо. Примерно понятно.
Sha (2004-09-22 16:19:00) [8]> Sandman25 © (22.09.04 16:11) [19]
> Можно примеры для обоих случаев? Или хотя бы идею.
Идей всего 3: умножение на "обратное", сдвиги, деление столбиком.
Первое хорошо описано у Agner Fog http://www.agner.org/assem
Sandman25 (2004-09-22 16:16:00) [9][20] TUser © (22.09.04 16:12)
Такое нахождение остатка очевидно. Но очевидно и то, что оно неэффективно.
TUser (2004-09-22 16:12:00) [10]Для усложенения жизни можно порекомендовать вот такой алгоритм. Тут все только плюс и минус.
A:=делимое
B:=делитель
C:=B; C1:=0;
while A >= B do begin
A:=A+C1-C;
C1:=C
C:=C+C;
end;
if A < 0 then
A:=A+C1;
while A >= B do
A:=A-B;
A = остаток
Sandman25 (2004-09-22 16:11:00) [11][18] Sha © (22.09.04 16:09)
Можно примеры для обоих случаев? Или хотя бы идею.
Sha (2004-09-22 16:09:00) [12]Sandman25 © (22.09.04 16:06) [16]
Да, если Y известен в момент компиляции.
В противном случае все несколько усложняется.
Суслик (2004-09-22 16:07:00) [13]
> [15] Sha © (22.09.04 16:01)
О великий комбинатор :))) Опыт...
Тогда правда все понятно :))
Sandman25 (2004-09-22 16:06:00) [14][13] Sha © (22.09.04 15:56)
На Паскале?
Sha (2004-09-22 16:01:00) [15]Суслик © (22.09.04 15:58) [14]
Перестановкой слов получаем:
Можноли делить с остатком числа в Delphi без использования div и mod
Все понятно :)
Суслик (2004-09-22 15:58:00) [16]
> [11] Sha © (22.09.04 15:54)
> Возможно при помощи 2-х умножений или комбинаций shr/and
> в простейшем случае.
да не спорю я ни с чем :)))
вопрос бы понять :))
> Можноли делить числав Delphi без div чтобы с остатком
> и без использования mod
Вот эту комбинацию слов фик поймешь - если человек хочет делить без использования mod, то он значит умеет делить с использованием mod. Я так например не умею :((
Sha (2004-09-22 15:56:00) [17]Sandman25 © (22.09.04 15:55) [12]
Это можно провернуть и в целочисленной арифметике
Sandman25 (2004-09-22 15:55:00) [18]X - Trunc(X/Y)*Y
Sha (2004-09-22 15:54:00) [19]Суслик © (22.09.04 15:51) [10]
Возможно при помощи 2-х умножений или комбинаций shr/and в простейшем случае.
Суслик (2004-09-22 15:51:00) [20]
> [8] Sha © (22.09.04 15:48)
> > Суслик © (22.09.04 15:44) [5]
> > Все правда поняли, что он спросил?
>
> Ответ зависит от того, понял ли ты :)
не понял, к чему это
Я про то и говорю, что вопрос не понял и удивляюсь, что вы все поняли.