I'm currently making my own BigInt class, by splitting numbers by 7 digits. (i.e. in base 10,000,000)

I implemented addition, subtraction, and multiplication, and now I'm implementing division and mod. I wrote a code that performs division by long division (estimating numbers by dividing most-significant digits), and it works.

However, it is too slow. When I test operations on a 108-digit number and a 67-digit number, it takes 1.9ms to calculate division, much slower than other operations(0.007~0.008ms to calculate addition/subtraction, 0.1ms to calculate multiplication).

Like Karatsuba and FFT algorithm for fast multiplication, what algorithm exists for calculating division? [Wikipedia](http://en.wikipedia.org/wiki/Division_%28digital%29) demonstrates some division algorithms (which calculates multiplicative inverse of divisor and multiplies it with dividend), but I think that doesn't help me much implementing division. I read 'Large integer methods' sections too but that doesn't help me too... :(