![]() |
*Теория* | Калькулятор с бесконечной точностью
Приветствую всех. Подкиньте идею, как сделать калькулятор с бесконечной точностью, где можно умножать, складывать и т.д огромные числя и получать бесконечную точность.
|
Хм, я не до конца понимаю термин "бесконечная точность", я реально достигал точности е-097 (е+097), потом просто идет переполнение, как можно достичь бесконечной точночти на машине с ограниченной разрядной сеткой я не понимаю...., хотя может я чего то не знаю, очень хотел бы услышать еще чьи-нибудь коментарии.
|
Ну например, у меня есть два 96-ти битных числа. Как их сложить???
|
побитово :)
Основная проблема, как мне видится, не арифметические действия с такими числами, а вывод на экран ответа в системе счисления, основание которой отлично от степени двойки. |
Ну хоть чт0-то подскажите. Я знаю, что есть какая-то функция тип ads в ассемблере.
Как мне понимается, это будет аналог сложению в столбик-по крайней мере алгоритм. Или же числа будут обрабатываться по частям... а может использовать динамический массив? хоть что-нибудь подскажите |
Если не трогать пока ассемблер, то для Паскаля (а Вам какой язык ближе?) (сложение беззнаковых любого размера):
Код:
const |
Спасибо. Но, если честно, не очень понятно, что здесь реализовано, хотелось бы все-таки понять.
Единственное, что понял-это a,b числа, с-результат. Поясните, если не трудно. Да, и потом как работать с этим кодом, как задать значения чисел и проверить результат. |
Я так понял, если a[i] и bit[j] > 0, то a_bit=1, иначе a_bit =0 ?????????
|
Обычно это называют длинной арифметикой иделают её по основанию 10 (как вариант - 10^n), а не 2. Потому что входные/выходные данные обычно в десятичном виде, а значаит операции ввода/вывода будет делать проще. Есть много информации в сети об этом. Из легко доступного и понятного могу посоветовать книгу Окулова "Программирование в алгоритмах". Ну или вездесущий Яндекс поможет.
|
В институте была задачка, посчитать средствами Паскаля 70! с точностью до знака.
Пришлось учить машину умножать столбиком. Числа хранили в строковом представлении :) |
Время: 12:17. |
Время: 12:17.
© OSzone.net 2001-