Как оперировать с числами, которые выше максимально возможных?
Доброго дня!
Например, Microsoft создали для своей Windows калькулятор, который еще в 90х мог складывать, умножать и делить огромные числа, значительно выше maxlongint. Сейчас он, само собой, тоже так умеет. Возможно, на сегодняшний день предел допустимого числа вырос (особенно на 64 системах), но в 90х этот предел был очень явным.
Как Microsoft смогли такое реализовать, ведь у процессоров в плане обработки чисел имеются (имелись) серьезные ограничения? Насколько я слышал, исходники калькулятора до сих пор закрыты.
Ничего необычного - просто храните число, как массив, а все операции проводите по алгоритмам типа такого
Да, это медленно, зато достигается любая требуемая точность вычислений.
Петр: к тому же, когда перемножаешь большие числа, они преобразуются в специальную форму (с e), поэтому стандартная система "в столбик" тут не сработает
Алексей Николаев: Алексей, как я понимаю, вы не особо сильны в математике и такое понятие как сходящийся ряд вам не ведомо. Хотя в реале функции всех калькуляторов именно так и работают.
Алексей Николаев: Специальную это какую? Вообще-то все известные мне процессоры выполняют математические операции именно в столбик, потому как ни каких других методов для позиционных систем счисления в природе не существует.
brainick: а при чем здесь докторская. вообще-то элементарные основы математических вычислений должен знать любой человек который называет себя грамотным, а для инженера математика это его инструмент
У процессора в плане обработки чисел только одно ограничение - время расчета. Например, RSA алгоритм использует 500-1000 битные простые числа.
Вы, вообще, представляете себе что такое 500 битное число?
Алексей Николаев: Нет ни каких "искусственных ограничений". Просто 99,99999% вычислений укладываются в 4 байтное целое и 8 байтное вещественное. В таком случае зачем усложнять конструкцию процессора? Кому требуется более точные расчеты или какая нибудь экзотика типа RSA может реализовать это программно, алгоритм расчетов секретом не является и известен каждому школьнику