Преобразование произвольного большого числа в основание 256 - PullRequest
2 голосов
/ 06 января 2012

У меня номер очень большой длины может быть до 50 цифр.Я принимаю это как строку ввода.Тем не менее, мне нужно выполнить операции на нем.Итак, мне нужно преобразовать их в правильную базу, скажем, 256.

Какой будет лучший алгоритм для этого?

1 Ответ

10 голосов
/ 06 января 2012

Арифметика с множественной точностью (aka bignums ) - сложный вопрос, и хорошие алгоритмы не интуитивны (об этом есть книги).

Существует несколько библиотек, работающих с бигнумами, например, GMP library (и есть другие).И большинство из них извлекают выгоду из некоторых аппаратных инструкций (например, добавить с переносом) с тщательно настроенными небольшими порциями кода ассемблера.Таким образом, они работают лучше, чем то, что вы сможете за пару месяцев написать.

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

См. Также ответы на этот вопрос .

...