I am trying to implement a version of the Karatsuba algorithm and it requires the numbers to be split up into x1,x2,y1,y2. The problem is dividing 7890123456789012 by say 10000, results in -204890. Not too sure but I don't think the division '/' operator can handle large numbers. E.g. x = 7890123456789012, how would I extract the low order 8 digits and the rest and separate it into two variables. Bit shifting? There should be some reasonably quick way of ding it. Or am I completely missing the obvious?