我们都知道,Java中的int或者long都是有限的.
那么如果我们要做很大数据的运算,怎么办呢?
直接上干货:
Java代码实例,请阅读注释:
/**
* 算法系列-大数字运算
* @author
* @date 2018年3月6日
*/
public class AlgorithmBigNumTest {
public static void main(String[] args) {
// 计算 512*34
// 使用数组存储大数字.
int[] bigArr = new int[8];
int len = bigArr.length,
num = 34; // 被乘数.
bigArr[len-1] = 2; // 最后一位发个位,以此类推.
bigArr[len-2] = 1;
bigArr[len-3] = 5;
// 计算每一位的结果
for (int i = 0; i < len; i++) {
bigArr[i] *= num;
}
// 对每一位进位和留位
for (int i = len-1; i > 0; i--) {
bigArr[i-1] += bigArr[i]/10; //进位
bigArr[i] %= 10; // 留位
}
System.out.println(512*34);
for (int i = 0; i < len; i++) {
System.out.print(bigArr[i]);
}
}
}
--end.
有什么不清楚的,请留言.