求实现大整数基本运算的类模版?该如何处理

求实现大整数基本运算的类模版?
关于这个大整数(比如long   long)的基本运算等相关问题,我也看了不少帖子,存储方式不一样,实现思路也不尽相同。我想能不能把这些基本运算编成一个类模版,希望大家提供一些金典的算法或者好的实现思路!
        其中基本运算包括,加,减,乘,除,模,乘方,输出等;存储方式比如,数组,链表等均可。
       
(如果有源代码,发个邮件让我研究也行,呵呵,msccao@163.com   ,谢谢)

------解决方案--------------------
大整数,作成一个类不更好吗?
模板范化啥东西呢?
------解决方案--------------------
给你一个只支持*=(int)的
class BigInt
{
typedef unsigned long FUNDUS_T;
typedef unsigned long long int ACCUMULATE_T;
typedef vector <FUNDUS_T> CONTAINER_T;
enum {FUNDUS = 1000000000};
enum {FUNDUS_LEN = numeric_limits <FUNDUS_T> ::digits10};

public:
BigInt(FUNDUS_T x = 0)
{
c.reserve(65535);
do
{
c.push_back(x % FUNDUS);
x /= FUNDUS;
} while (x != 0);
}

public:
BigInt & operator*=(FUNDUS_T x)
{
ACCUMULATE_T carry = 0;
for (CONTAINER_T::iterator i = c.begin(); i != c.end(); ++i)
{
carry = ACCUMULATE_T(*i) * x + carry;
*i = carry % FUNDUS;
carry /= FUNDUS;
}

if (carry != 0)
{
c.push_back(carry);
}

return *this;
}

public:
template <typename OSTREAM_T>
friend OSTREAM_T & operator < <(OSTREAM_T &, const BigInt &);

private:
CONTAINER_T c;
};

template <typename OSTREAM_T>
OSTREAM_T & operator < <(OSTREAM_T & os, const BigInt & x)
{
BigInt::CONTAINER_T::const_reverse_iterator iter = x.c.rbegin();
os < < *iter;
++iter;
while (iter != x.c.rend())
{
os < < setw(BigInt::FUNDUS_LEN) < < setfill( '0 ') < < *iter;
++iter;
}

return os;
}
------解决方案--------------------
https://sourceforge.net/projects/cpp-bigint/

请看链接的内容
------解决方案--------------------
我自编的大数运算类,感觉一般,可以参考一下。

http://blog.csdn.net/Y___Y/archive/2006/11/26/1415183.aspx
------解决方案--------------------

比如 16进制的 0xff00 ,分开 0xff, 0x00 . 分组很自然,合并很直观.
但是10进制,必须将所有的数合并了,才知道每一个数位的情况(但是就是不能将所有的数合并才
分开的,这不就是矛盾了么)
比如:
255, 0 和 65280 没有一点共同性.

------解决方案--------------------
http://yaojialin.51.net/download/