Самый быстрый способ деления больших целых чисел

Как быстрее всего разделить большое натуральное число на другое натуральное число?

В следующем фрагменте C++ я считаю, что реализовал длинное деление на основе двоичного кода:

Num operator/(const Num& num1,const Num& num2)
{
    Num res = 0;

    Num tmp1 = num1;

    unsigned int tmp1Len = tmp1.BitCount();
    unsigned int num2Len = num2.BitCount();

    while (tmp1Len > num2Len)
    {
        res += (Num)1<<(tmp1Len-num2Len-1);
        tmp1 -= num2<<(tmp1Len-num2Len-1);
        tmp1Len = tmp1.BitCount();
    }

    if (tmp1 >= num2)
        return res+1;

    return res;
}

Класс Num поддерживает все необходимые арифметические операторы и логические компараторы.

Ответ не обязательно должен быть на С++ (общий метод также приветствуется).

Есть ли более быстрый способ сделать это?

Спасибо


person barak manos    schedule 09.10.2014    source источник
comment
Этот пост может быть несколько уместным на ваш вопрос.   -  person Vivek Pradhan    schedule 09.10.2014
comment
@VivekPradhan: Да, действительно, спасибо.   -  person barak manos    schedule 09.10.2014
comment
Почему бы не использовать стороннюю библиотеку с множественной точностью?   -  person Barmar    schedule 09.10.2014