在本篇文章中我们将实现高精度乘法运算。
乘法和加法比起来就复杂很多了,我们知道乘法可以由加法直接实现(连续加因数2次因数1),在有我们之前的加法运算的基础的情况下,这种乘法运算极其简单便能实现(但是需要先做出高精度数比较运算,这是下节的内容了,不过这种方法并不明智,对于一个N位数乘以N位数的运算,其时间复杂度为O(10^N),这个增长速度实在是太大了。
那么我们继续按照上次的思路,回到我们算乘法的竖式,看图1:

图1

对于我们的乘法运算,按照计算机的运算思路,就是两个大循环,逐位相乘,最后再相加,然后转换为十进制数字,也就是进位,就能得到我们的结果了。
下面是乘法的实现方法:

依照惯例,给出完整的高精度整数类的代码,除了增加了乘法及乘法相关的运算符的重载外,为了防止乘法运算中相加过程中出现数值溢出,原先的short类型的容器修改为了int,这样可以确保不会出现乘法运算溢出的现象,同时在每次赋值和输入的最后,会自动去掉数字的前导零:

2
说点什么

1 Comment threads
1 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
  Subscribe  
最新 最旧 得票最多
提醒
匿名

能不能给点中文的,看不懂啊