Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15198797
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-26 22:07:13

Author:水如烟 

用户使用的大数运算类

这里只是简单提供。可以考虑让它自动分拆多线程。

BigInt.vb

<Serializable()> _
Public Class BigInt

    
Private gMath As New MathsUnit

    
Public Property StringValue() As StringValue
        
Get
            
'转换为原存储方式
            Return gMath.StringValue.CopyTo(gMath.OrignalAddressInfo.UnitNum)
        
End Get
        
Set(ByVal value As StringValue)
            gMath.StringValue 
= value
        
End Set
    
End Property

    
Public Function Clone() As BigInt
        
Return CommonFunction.Clone(Of BigInt)(Me)
    
End Function

    
Public Sub CopyFrom(ByVal bInt As BigInt)
        gMath.CopyFrom(bInt.gMath)
    
End Sub

    
Public Sub Add(ByVal bInt As BigInt)
        gMath.Add(bInt.gMath)
    
End Sub

    
Public Shared Operator +(ByVal a As BigInt, ByVal b As BigInt) As BigInt
        
Dim c As BigInt = a.Clone
        c.Add(b)
        
Return c
    
End Operator

    
Public Sub Multy(ByVal bInt As BigInt)
        gMath.Multy(bInt.gMath)
    
End Sub

    
Public Shared Operator *(ByVal a As BigInt, ByVal b As BigInt) As BigInt
        
Dim c As BigInt = a.Clone
        c.Multy(b)
        
Return c
    
End Operator

End Class

代码下载:代码

阅读(576) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~