高精度计算(二):大整数乘法

本文深入解析高精度计算中的大整数乘法算法,包括传统位操作方法和现代高效的Karatsuba算法。通过实例介绍如何处理超过常规整型范围的大整数相乘,为理解大规模数值计算提供基础。
摘要由CSDN通过智能技术生成
【例1】两个大整数乘法。
      输入两个不超过200位的非负大整数a和b,求a×b的值。
      (1)编程思路。
      用 unsigned num1[200]和num2[200]分别存放两个乘数,用result[400]来存放积。计算的中间结果也都存在result 中。result 长度取400 是因为两个200 位的数相乘,积最多会有400 位。num1[0], num2[0], result[0]都表示个位。
       计算的过程基本上和小学生列竖式做乘法相同。为编程方便,并不急于处理进位,而将
进位问题留待最后统一处理。
       图1给出了753×68的计算过程。描述如下:
      1)先依次计算753的各位数字与8的乘积,并加到result数组的相应单元中。result数组的全部元素的初始值均为0。
      2)再依次计算753的各位数字与6的乘积,并加到result数组的相应单元中。
      3)乘法过程完毕。从 result[0]开始向高位逐位处理进位问题。result[0]留下4,
把2 加到result[1]上,result[1]变为60 后,应留下0,把6 加到result[2]上……最终使
得result 里的每个元素都是1 位数,结果就算出来了。
       在乘法过程中,num1的第i 位和num2的第j 位相乘所得的数,一定是要累加到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值