2016-03-25 1 views
1

Я пытаюсь сделать калькулятор с использованием математики с произвольной точностью, но я не могу понять, как обрабатывать отрицательные показатели. Каков наиболее эффективный способ выполнить операцию с использованием n ** - x? До сих пор я пробовал 1/n ** x, проблема в том, что у меня нет способа узнать, сколько чисел будет отслеживать десятичную точку и использовать целые числа, например, поражает цель создания калькулятора с использованием произвольной точности будет ограничивать размер разрешенных номеров ввода. Мне было интересно, есть ли другой способ сделать это.Реализация отрицательных показателей с целыми числами с произвольной точностью?

Я программирую на языке C, но любой метод отрицательных показателей работает честно.

+0

Что это связано с связанными списками? –

+0

Можете ли вы рассказать о том, как ваш калькулятор использует связанные списки? Это для хранения целых чисел с произвольной точностью? – templatetypedef

+0

Каждый узел списка содержит цифру числа работающих, да, я забыл упомянуть, что это произвольная точность, однако мне нужен точный результат, если я должен был преобразовать из двоичного в десятичный, чтобы впоследствии добавить его в другая мощность 2 ** - x – vega2015

ответ

2

Если вам нужна поддержка арифметики с произвольной точностью с отрицательными показателями, это звучит так, как будто вы можете захотеть сохранить ваше число как долю в простейшей форме с числителем и знаменателем, каждый из которых хранит целые числа произвольной точности. Чтобы реализовать что-то вроде x -n, где x = a/b, вы получите число b n/a n. Таким образом, вам не нужно беспокоиться о десятичных цифрах вообще, что хорошо, потому что большинство реальных чисел не имеют конечных десятичных представлений.

+0

звучит так, как будто я мог бы использовать это, но я немного смущен относительно того, что b может вы могли бы привести пример, используя фактические цифры? – vega2015

+1

Несомненно! Предположим, вы хотите сохранить номер 5. Вместо этого сохраните 5/1. Затем, чтобы вычислить 5^-3, вы можете сохранить 1/5^3 = 1/125. – templatetypedef

+0

, что определенно ставит меня на правильный путь, спасибо – vega2015

Смежные вопросы