大数是啥?来一段百度百科的话
由于编程语言提供的基本数值数据类型表示的数值范围有限,不能满足较大规模的高精度数值计算,因此需要利用其他方法实现高精度数值的计算,于是产生了大数运算。大数运算主要有加、减、乘三种方法。
当然啦,我们这里会有加减乘除
加法 VS 减法 VS 乘法
加法和减法, 这里是把他们进行分割,输入进来的参数是字符串的形式
像这样,为什么呢? 这是因为如果超过一定大的数的时候会出现精度不够的情况,导致你输入的数不能被正确的读取。
因此对于大数的处理, 常常分割成一个一个的字符,进行计算,最后通过数组进行拼接。
除法
除法在大数运算中应该算得上是难度最大的吧,在我的运算函数中,我把大数分为两种情况
- 一种是只有被除数是大数, 除数为非大数。这个时候,我分割被除数, 不断往右添加一位。
- 第二种是两个数据都是大数, 这个时候就很无奈了。。这个时候是通过一步一个脚印的减法。。。可见时间只漫长了。。。。
附上GitHub上代码
github