请问大数高精度四则运算怎么更高效

请教大数高精度四则运算如何更高效?
我用C++模拟自己算加减乘除,虽然有一定的精度,但发现效率很低,还综述出现溢出,请教大家,如何提高速度和正确性呢?有没有相关的类或者库可以提供使用呢?因为需要,计算精度位数要达到100万位以上,而且数据量较大,希望各位都能不吝赐教,谢谢大伙!

------解决方案--------------------
LZ去这里看看吧:GMP
------解决方案--------------------
简单的说就是要使用二进制进行计算,放弃一个字节一个10进制位的简陋做法。
------解决方案--------------------
《C语言接口与实现》一书内有详解。

------解决方案--------------------
100万位乘法基本只能FFT了。能用库那就去傍GMP吧。
------解决方案--------------------
可以把大数字符串按n个数字一组切分成 一个数组。
比如 101 1234 5678 9123
保存到数组中 a[5] ={101, 1234, 5678, 9124}
然后类似于10进制的各位加法,对a[5]+b[5]的各位进行加法
类似如下:

int carray = 0;//进位
for (i = 4; i>=0; i--){
 int tmp = a[i] + b[i] + carry;
 c[i] = tmp % 10000;
 carry = tmp / 10000;