Вот. Совместил в одной программе твой модуль и свой

... Результат превосходит все ожидания... Хотя и не самый оптимал...еще можно улучшать и улучшать! Хотя скорости и так хватает и размер числа ограничен стрингом
З.Ы. число в 500 символов конвертится за 187мс (из 10 в 2), 3000 за 7сек. а обратно за 343 мс и 16сек соответственно. Твой метод умирает уже на 8-10 символах.
З.З.Ы. Сильно не критиковать...вобще ничего не оптимизировал...думаю, поработав еще чуток, можно и мой результат улучшить в разы.