两位数活多位乘法的计算编程

本文介绍了一种使用VBA编程实现两个大整数相乘的方法。通过将字符串类型的数字转换为字节数组,逐位进行乘法运算并处理进位,最终得到乘法结果。该方法适用于超出标准数值类型范围的大数运算。

代码编写;

Option Base 1

Private Sub Command1_Click()
Dim M As String
Dim N As String
M = Trim(Text1.Text)
N = Trim(Text2.Text)
Dim Number1() As Byte
Dim Number2() As Byte
ReDim Number1(Len(M))
ReDim Number2(Len(N))
Dim index As Byte
For index = 1 To Len(M) Step 1
Number1(index) = Mid(M, index, 1)
Next index
For index = 1 To Len(N) Step 1
Number2(index) = Mid(N, index, 1)
Next index
Dim Result() As Byte
ReDim Result(Len(M) + Len(N))
Dim MCarry As Byte
Dim ACarry As Byte
Dim Remainder As Integer
Dim i As Integer, j As Integer
Dim Mtemp As Integer, Atemp As Integer
For i = Len(N) To 1 Step -1
For j = Len(M) To 1 Step -1
Mtemp = Number1(j) * Number2(i) + MCarry
MCarry = Mtemp \ 10
Remainder = Mtemp Mod 10
Atemp = Remainder + Result(i + j) + ACarry
ACarry = Atemp \ 10
Result(i + j) = Atemp Mod 10
Next j
Result(i) = MCarry + ACarry
MCarry = 0
ACarry = 0
Next i
Dim Mstr As String
For index = 1 To Len(N) + Len(M)
Mstr = Mstr & Str(Result(index))
Next
Label3.Caption = Mstr
End Sub




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值