高精度 大整数 优化方向

在此列出了优化方向,并在接下来的几篇博客中贴出每一个的代码。 
前言: 
大整数运算的核心思想是利用数组保存数据进行模拟运算,优化思想均是二分优化,还有一个小技巧优化。 
1.加法add:利用数组按位相加,无优化。 
2.减法sub:利用数组按位相减,无优化。 
分两个版本,s1是判断两个减数的大小进行相应的求值并标明正负,s2是用在除法中,在两个减数大小判断做手脚,只判断正负即可。 
3.乘法mul:m1每9个数字划分到一个新的数组当中,即10进制变成1e+9进制,时间复杂度由a*b优化为 a + b + ab/81;//a b 指的是两个字符串的位数。 
m2当高精度乘以longlong范围内的数是无需优化,直接按位相乘。 
4.除法division:利用1e+9进制,d1,两个高精度,试商,利用m2乘法和s2减法进行,试商2,4,6增长。 
d2,高精度除以小整数,直接按位运算。 
小整数除以高精度,直接得余数。 
5.乘方运算:优化方向,二分优化,例如:a^11 = a^10*a = a^5*a^5*a是否字符串优化见第3条; 
利用相同的得数减小运算量。 
附:最大公因数利用辗转相除。 
最小公倍数利用两数相乘除以最大公因素和或者其中一个因数自增。 

你可能感兴趣的:(大整数)