} while (num);
// 将分拆之后的num进行乘法计算
unsigned int i = 0,j = 0;
for(i = 0;i < tempnum.size();++i)
{
int carry = 0;// 存储每位计算时来自低位的进位
for(j = 0;j < calcresult.size();++j)
{
int bit1 = 0,bit2 = 0,res = 0;
bit1 = calcresult[j];
bit2 = tempnum[i];
res = bit1 * bit2;
// 保存当前位
if((i+j)
{
// 临时结果中有对应位存在,则直接更新
rest[i+j] += (res + carry) % 10;
}
else
{
// 没有对应位则需要添加
rest.push_back((res+carry)%10);
}
// 有进位,则更新进位
carry = (res + carry) / 10;
}
// 如果计算之后还有最高位的进位,那么则直接添加进去
if(carry)
{
// 保存当前位
if((i+j)
{
// 临时结果中有对应位存在,则直接更新
rest[i+j] += carry;
}
else