大数运算(三)

Author: 水如烟 

这是分块运算测试 。整个过程模拟了实际计算中的计算分配,中间结果的存储,再计算,最后得出全部结果。

测试看到True出现,很是开心。一次成功。运算单元和地址,两个关键设计还是正确的。

下面是测试代码和输出结果。

Public   Class  BigIntDemo2

    
Private  gBuilder  As   New  System.Text.StringBuilder

    
Public   Sub  Run()
        
If  gBuilder.Length  >   0   Then  gBuilder.Remove( 0 , gBuilder.Length)

        bAppend(
" 这是大数加、乘运算的第二个测试程序。目的是测试分块运算 " )
        bAppend(
" 也是计算1000的阶乘 " )
        bAppend(
" 步骤是先把[1,600],[601,1000]的连乘结果算出来,再把两个结果用各自的存储方式切割,再对这些块计算。 " )

        bAppend(
" [1,600]的结果是: " )
        
Dim  aValue  As  BigIntLibrary.StringValue  =  Calculate( 1 600 )
        bAppend(aValue, 
True False )

        bAppend(
" [601,1000]的结果是: " )
        
Dim  bValue  As  BigIntLibrary.StringValue  =  Calculate( 601 1000 )
        bAppend(bValue, 
True False )

        bAppend(
" 将第一个结果按指数6存储: " )
        
Dim  aValue6  As  BigIntLibrary.StringValue  =  aValue.CopyTo( 6 )
        bAppend(aValue6, 
False False )

        bAppend(
" 将第二个结果按指数5存储: " )
        
Dim  bValue5  As  BigIntLibrary.StringValue  =  bValue.CopyTo( 5 )
        bAppend(bValue5, 
False False )

        bAppend(
" 分拆后,前者有两项,后者有三项.共有六次相乘,六次相加.下面分步计算 " )

        
Dim  aValue6_0  As  BigIntLibrary.StringValue  =  aValue6.CopyToByIndex( 6 0 )
        
Dim  aValue6_1  As  BigIntLibrary.StringValue  =  aValue6.CopyToByIndex( 6 1 )

        
Dim  bValue5_0  As  BigIntLibrary.StringValue  =  bValue5.CopyToByIndex( 5 0 )
        
Dim  bValue5_1  As  BigIntLibrary.StringValue  =  bValue5.CopyToByIndex( 5 1 )
        
Dim  bValue5_2  As  BigIntLibrary.StringValue  =  bValue5.CopyToByIndex( 5 2 )


        
Dim  c( 5 As  BigIntLibrary.StringValue

        bAppend(
" c(0) 存 aValue6_0 * bValue5_0 " )
        bAppend(aValue6_0, 
False False )
        bAppend(bValue5_0, 
False False )
        c(
0 =  Calculate(aValue6_0, bValue5_0)
        bAppend(
"      相乘结果 " )
        bAppend(c(
0 ),  False False )

        bAppend(
" c(1) 存 aValue6_0 * bValue5_1 " )
        bAppend(aValue6_0, 
False False )
        bAppend(bValue5_1, 
False False )
        c(
1 =  Calculate(aValue6_0, bValue5_1)
        bAppend(
"      相乘结果 " )
        bAppend(c(
1 ),  False False )

        bAppend(
" c(2) 存 aValue6_0 * bValue5_2 " )
        bAppend(aValue6_0, 
False False )
        bAppend(bValue5_2, 
False False )
        c(
2 =  Calculate(aValue6_0, bValue5_2)
        bAppend(
"      相乘结果 " )
        bAppend(c(
2 ),  False False )

        
' ---
        bAppend( " c(3) 存 aValue6_1 * bValue5_0 " )
        bAppend(aValue6_1, 
False False )
        bAppend(bValue5_0, 
False False )
        c(
3 =  Calculate(aValue6_1, bValue5_0)
        bAppend(
"      相乘结果 " )
        bAppend(c(
3 ),  False False )

        bAppend(
" c(4) 存 aValue6_1 * bValue5_1 " )
        bAppend(aValue6_1, 
False False )
        bAppend(bValue5_1, 
False False )
        c(
4 =  Calculate(aValue6_1, bValue5_1)
        bAppend(
"      相乘结果 " )
        bAppend(c(
4 ),  False False )

        bAppend(
" c(5) 存 aValue6_1 * bValue5_2 " )
        bAppend(aValue6_1, 
False False )
        bAppend(bValue5_2, 
False False )
        c(
5 =  Calculate(aValue6_1, bValue5_2)
        bAppend(
"      相乘结果 " )
        bAppend(c(
5 ),  False False )


        bAppend(
" 最后相加,结果是:  " )
        
Dim  mResult0  As  BigIntLibrary.StringValue  =  Calculate(c)
        bAppend(mResult0, 
True True )

        bAppend(
" 直接相乘的结果是:  " )
        
Dim  mResult1  As  BigIntLibrary.StringValue  =  Calculate(aValue, bValue)
        bAppend(mResult1, 
True True )

        bAppend(
String .Format( " 两种方式的结果是否相同:{0}  " , mResult1.Equals(mResult0)))

        Console.WriteLine(gBuilder.ToString)
    
End Sub

    
Private   Function  Calculate( ByVal  values()  As  BigIntLibrary.StringValue)  As  BigIntLibrary.StringValue
        
Dim  a  As   New  BigIntLibrary.BigInt
        
Dim  b  As   New  BigIntLibrary.BigInt

        a.StringValue 
=  values( 0 )
        
For  i  As   Integer   =   1   To  values.Length  -   1
            b.StringValue 
=  values(i)

            a.Add(b)
        
Next

        
Return  a.StringValue
    
End Function

    
Private   Function  Calculate( ByVal  aValue  As  BigIntLibrary.StringValue,  ByVal  bValue  As  BigIntLibrary.StringValue)  As  BigIntLibrary.StringValue
        
Dim  a  As   New  BigIntLibrary.BigInt
        
Dim  b  As   New  BigIntLibrary.BigInt

        a.StringValue 
=  aValue
        b.StringValue 
=  bValue
        a.Multy(b)

        
Return  a.StringValue
    
End Function

    
Private   Function  Calculate( ByVal  first  As   Integer ByVal  last  As   Integer As  BigIntLibrary.StringValue
        
Dim  a  As   New  BigIntLibrary.BigInt
        
Dim  b  As   New  BigIntLibrary.BigInt
        a.StringValue 
=   New  BigIntLibrary.StringValue( " 1 " )

        
For  i  As   Integer   =  first  To  last
            b.StringValue 
=   New  BigIntLibrary.StringValue(i.ToString)

            a.Multy(b)
        
Next

        
Return  a.StringValue
    
End Function

    
Private   Sub  bAppend( ByVal  strValue  As  BigIntLibrary.StringValue,  ByVal  IsValue  As   Boolean ByVal  whenValueIsFullvalue  As   Boolean )
        
Dim  tmp  As   String

        
If  IsValue  Then
            
If  whenValueIsFullvalue  Then
                bAppend(
" 全值: " )
                tmp 
=  strValue.GetFullValue
            
Else
                bAppend(
String .Format( "   值:(起始地址:{0}) " , strValue.FirstAddressInfo.Address))
                tmp 
=  strValue.Value
            
End   If
        
Else
            
With  strValue
                bAppend(
String .Format( " 存储情况: 指数 {0},单位 {1},长度 {2}, 起始地址 {3} " , _
                                     .FirstAddressInfo.UnitNum, .UnitLength, .Size, .FirstAddressInfo.Address))
                tmp 
=  .Test_OutPutValueInformation
            
End   With
        
End   If

        SplitStringToBuilder(gBuilder, tmp, 
100 )
        gBuilder.AppendLine()
    
End Sub

    
Private   Sub  bAppend( ByVal  s  As   String )
        gBuilder.AppendLine(s)
        gBuilder.AppendLine()
    
End Sub

    
Private   Sub  SplitStringToBuilder( ByRef  b  As  System.Text.StringBuilder,  ByVal  line  As   String ByVal  lenline  As   Integer )
        
Dim  mArray()  As   String   =  SplitStringToArray(line, lenline)

        b.AppendLine(mArray(
0 ).PadLeft(lenline))

        
For  i  As   Integer   =   1   To  mArray.Length  -   1
            b.AppendLine(mArray(i))
        
Next
    
End Sub

    
Private   Function  SplitStringToArray( ByVal  line  As   String ByVal  digits  As   Integer As   String ()
        
Dim  mLineLength  As   Integer   =  line.Length
        
Dim  mCount  As   Integer   =  mLineLength   digits
        
If  (mLineLength  Mod  digits)  >   0   Then  mCount  +=   1

        
Dim  mResult(mCount  -   1 As   String

        
Dim  mCurrentIndex  As   Integer
        
For  i  As   Integer   =  mCount  -   1   To   0   Step   - 1
            mCurrentIndex 
=  mLineLength  -  (mCount  -  i)  *  digits

            
If  mCurrentIndex  <   0   Then
                mResult(
0 =  line.Substring( 0 , mLineLength  -  (mCount  -   1 *  digits)
            
Else
                mResult(i) 
=  line.Substring(mCurrentIndex, digits)

            
End   If

        
Next

        
Return  mResult
    
End Function

End Class

输出:

这是大数加、乘运算的第二个测试程序。目的是测试分块运算

也是计算1000的阶乘

步骤是先把[1,600],[601,1000]的连乘结果算出来,再把两个结果用各自的存储方式切割,再对这些块计算。

[1,600]的结果是:

  值:(起始地址:10)

                               126557231622543074254186782451508292976714038622746607681878288585281
4082314735123781780279561957107476520853259806022480324090378216476943079502557805427190628338764382
6088448124626488332623608376164081221171179439885840257818732919037889603719186743943363062139593784
4739222318527825476197717238892524768711860001746979345491128456625961823082803906151846919244462155
5258652374008493280725905623896210468973152258756441223161801877435080152683956736744492820623131097
3619440354723718012867753019556135721376207959558860559933052856914157120622980057169891912595926540
4275968534412769850067248695582019306579002409430076578174736840089444481832191241630176666077706675
8508216959823923027403551773864806560049270209573284349270885603692021988336311152798810927739269656
2776813446645651238419301586157342867860646666350050113314787911320639668510871569846664873595017518
9956709584778064116675053464625904711368626473496662434262426771752047323142810644179390418686537411
8742306498518955674264011159858003564402183557671575286939746545382858447129126995589039329444831574
6500268702149708808053100406398480942695623586049403348084970064668900206251516968479727515576425962
3921362691690898846097942713310610188956344210940823104088897529542658426917324605389117849600000000

[601,1000]的结果是:

  值:(起始地址:7)

                                      31794884805730716429152055721086183874092813778136126616109666
4045965627359860409153387332152401486094747743820379852978171227393702071902258025279171567762881754
7985972474644167004581738122164359642392302077924104400737584862208005863905920370764750209470882112
0596942630049625050863924016909552649825684060308980780584318918500422267412113574219692866745457476
9012271508294514880198913802347006148202598502854846716576624351495020427198482950071504229207167347
6558576777777177286701304936557391610640126106530691181703044651089722605188953806701403459213320281
5808089799343667327626302130945213872903736220108801105117695877733480189064531910217470169443874163
3832584244180118722969924802280468677972792481543501972792635773019374752411816131336110346636278515
2025719314066945350458761370663419912246343425982617795138317780939776388569707269768897125808057510
5820215724333080476747167351332617073910515221511923875759815480910194264825720385655070694532254434
2492736717699483473345997169380012139188710396203896939423604219583180208393929534336396408389632000

将第一个结果按指数6存储:

存储情况: 指数 6,单位 896,长度 2, 起始地址 0

                                                                                   (1,12655723162254
3074254186782451508292976714038622746607681878288585281408231473512378178027956195710747652085325980
6022480324090378216476943079502557805427190628338764382608844812462648833262360837616408122117117943
9885840257818732919037889603719186743943363062139593784473922231852782547619771723889252476871186000
1746979345491128456625961823082803906151846919244462155525865237400849328072590562389621046897315225
875644122316180187743508015268395673674449282062313109736194403547237180128677530195561357213762079)
(0,5955886055993305285691415712062298005716989191259592654042759685344127698500672486955820193065790
0240943007657817473684008944448183219124163017666607770667585082169598239230274035517738648065600492
7020957328434927088560369202198833631115279881092773926965627768134466456512384193015861573428678606
4666635005011331478791132063966851087156984666487359501751899567095847780641166750534646259047113686
2647349666243426242677175204732314281064417939041868653741187423064985189556742640111598580035644021
8355767157528693974654538285844712912699558903932944483157465002687021497088080531004063984809426956
2358604940334808497006466890020625151696847972751557642596239213626916908988460979427133106101889563
4421094082310408889752954265842691732460538911784960000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

将第二个结果按指数5存储:

存储情况: 指数 5,单位 448,长度 3, 起始地址 0

                             (2,31794884805730716429152055721086183874092813778136126616109666404596
5627359860409153387332152401486094747743820379852978171227393702071902258025279171567762881754798597
247464416700458173812216435964239230207792410440073758486220800586390592037076475020947088211205)(1,
9694263004962505086392401690955264982568406030898078058431891850042226741211357421969286674545747690
1227150829451488019891380234700614820259850285484671657662435149502042719848295007150422920716734765
5857677777717728670130493655739161064012610653069118170304465108972260518895380670140345921332028158
0808979934366732762630213094521387290373622010880110511769587773348018906453191021747016944387416338
325842441801187229699248022804686779727924815435)(0,197279263577301937475241181613133611034663627851
5202571931406694535045876137066341991224634342598261779513831778093977638856970726976889712580805751
0582021572433308047674716735133261707391051522151192387575981548091019426482572038565507069453225443
4249273671769948347334599716938001213918871039620389693942360421958318020839392953433639640838963200
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

分拆后,前者有两项,后者有三项.共有六次相乘,六次相加.下面分步计算

c(0) 存 aValue6_0 * bValue5_0

存储情况: 指数 6,单位 896,长度 1, 起始地址 1

                                                                                   (1,12655723162254
3074254186782451508292976714038622746607681878288585281408231473512378178027956195710747652085325980
6022480324090378216476943079502557805427190628338764382608844812462648833262360837616408122117117943
9885840257818732919037889603719186743943363062139593784473922231852782547619771723889252476871186000
1746979345491128456625961823082803906151846919244462155525865237400849328072590562389621046897315225
875644122316180187743508015268395673674449282062313109736194403547237180128677530195561357213762079)

存储情况: 指数 5,单位 448,长度 1, 起始地址 2

                                (2,31794884805730716429152055721086183874092813778136126616109666404
5965627359860409153387332152401486094747743820379852978171227393702071902258025279171567762881754798
597247464416700458173812216435964239230207792410440073758486220800586390592037076475020947088211205)

     相乘结果

存储情况: 指数 6,单位 896,长度 1, 起始地址 2

                    (2,40238726007709377354370243392300398571937486421071463254379991042993851239862
9020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918
8236277271887325197795059509952761208749754624970436014182780946464962910563938874378852604580306521
5562948842101983652573703103290014724750148109444980576890440469490670175217809917910617354758796019
1274979659666909066169796449822416059868306529824351776115937201011049048599564706698534242911418402
7703721593777813401401197485006079053086458547401875621081339214643575022709295962862663965673017900
4818482582358703945182473501119055801884762907612048219985319623988706973928286996108560957298812298
331647260034326071990990874048271472263853864542011612988691523580001369306101901170530208571895195)

c(1) 存 aValue6_0 * bValue5_1

存储情况: 指数 6,单位 896,长度 1, 起始地址 1

                                                                                   (1,12655723162254
3074254186782451508292976714038622746607681878288585281408231473512378178027956195710747652085325980
6022480324090378216476943079502557805427190628338764382608844812462648833262360837616408122117117943
9885840257818732919037889603719186743943363062139593784473922231852782547619771723889252476871186000
1746979345491128456625961823082803906151846919244462155525865237400849328072590562389621046897315225
875644122316180187743508015268395673674449282062313109736194403547237180128677530195561357213762079)

存储情况: 指数 5,单位 448,长度 1, 起始地址 1

                                                (1,9694263004962505086392401690955264982568406030898
0780584318918500422267412113574219692866745457476901227150829451488019891380234700614820259850285484
6716576624351495020427198482950071504229207167347655857677777717728670130493655739161064012610653069
1181703044651089722605188953806701403459213320281580808979934366732762630213094521387290373622010880
110511769587773348018906453191021747016944387416338325842441801187229699248022804686779727924815435)

     相乘结果

存储情况: 指数 6,单位 896,长度 2, 起始地址 1

                                                                                   (2,12268790885288
9019629522683014048673960185693580848793103209087415269417115271420756066529625016844725509898865147
6522417009153382141209347403897172189939820338014022783615808935074330485924656879894667685179459894
5380592334666219410914388625363688941549912507649101955574561670716051773106376824228746705711520314
4010966365582013363633374608952822742490604558688361202202284406512762849732753449531458931521304216
133383453763033196576461463680273697450228462087992940811089938403901265392148904862333275910300072)
(1,4546368682184412653638062227550368806383048797700542464307033854026682839317104574947521478962595
3274535223491701348796699662139690320468925555239486968723986131153152675425530855441441065101820178
4577190377432953202549455949804024425720482340518786595371351395188839945050771454177764444169598409
2620399747119277993235590067440962220723884670420292335113987128073656766340414376148329018820353185
6705334504529027266052708040002288994081980768893650000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

c(2) 存 aValue6_0 * bValue5_2

存储情况: 指数 6,单位 896,长度 1, 起始地址 1

                                                                                   (1,12655723162254
3074254186782451508292976714038622746607681878288585281408231473512378178027956195710747652085325980
6022480324090378216476943079502557805427190628338764382608844812462648833262360837616408122117117943
9885840257818732919037889603719186743943363062139593784473922231852782547619771723889252476871186000
1746979345491128456625961823082803906151846919244462155525865237400849328072590562389621046897315225
875644122316180187743508015268395673674449282062313109736194403547237180128677530195561357213762079)

存储情况: 指数 5,单位 448,长度 1, 起始地址 0

                                                 (0,197279263577301937475241181613133611034663627851
5202571931406694535045876137066341991224634342598261779513831778093977638856970726976889712580805751
0582021572433308047674716735133261707391051522151192387575981548091019426482572038565507069453225443
4249273671769948347334599716938001213918871039620389693942360421958318020839392953433639640838963200
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

     相乘结果

存储情况: 指数 6,单位 896,长度 2, 起始地址 1

                                 (2,249671174548773268918172210372361584050981453945075307080080012)
(1,2383002472921980649889612492166936603245965697150026583658226156904836180152245387182059912468148
8639008969258671226501150886230137276024467022358182913588093323958370156161637392419837759030783015
3261377540760082110632884022449259638987403379554823089676756012280756879443690307776143786195692695
5317209592503997257531988959507342160561304759783672630470731258683132229906735652613856160899779600
6869799622839083976161611827151999710596466355063064287003850606907953991290072103602868393899600062
4399485660975188498290717424850885763184328469210381451771989949105744690011432897036364419114749198
0048137409625660082181606671979662295833376952566899060809858632887764895401413036172485489980682976
2390460384823383080803403539251975690219240015126715557857175700092535252772281260027612477836492800
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

c(3) 存 aValue6_1 * bValue5_0

存储情况: 指数 6,单位 896,长度 1, 起始地址 0

(0,5955886055993305285691415712062298005716989191259592654042759685344127698500672486955820193065790
0240943007657817473684008944448183219124163017666607770667585082169598239230274035517738648065600492
7020957328434927088560369202198833631115279881092773926965627768134466456512384193015861573428678606
4666635005011331478791132063966851087156984666487359501751899567095847780641166750534646259047113686
2647349666243426242677175204732314281064417939041868653741187423064985189556742640111598580035644021
8355767157528693974654538285844712912699558903932944483157465002687021497088080531004063984809426956
2358604940334808497006466890020625151696847972751557642596239213626916908988460979427133106101889563
4421094082310408889752954265842691732460538911784960000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

存储情况: 指数 5,单位 448,长度 1, 起始地址 2

                                (2,31794884805730716429152055721086183874092813778136126616109666404
5965627359860409153387332152401486094747743820379852978171227393702071902258025279171567762881754798
597247464416700458173812216435964239230207792410440073758486220800586390592037076475020947088211205)

     相乘结果

存储情况: 指数 6,单位 896,长度 2, 起始地址 1

                                (2,18936671106636498520102812597760627990077534884599913812877823099
2421429072859308859499254624110919226103096120516607014314811338638358302819980863636104600815876356
046465783744631665654704345528662912169565110502377538865701026048406678811057835075822856022497561)
(1,9186515905699757604675370810804877999644017104731715715208274908176881982323461356415003682615301
6005597658547222837835418964159327716724225960975823615779927942286460098974465286577706636131095132
6274651851674440739225571546605451431049334744948373037394046740468939190717548673617794943722697262
8835321040621325508106889227668352715869366992235014733220021455891858112720318573805121897628065237
9758508831955437275441780718322758349661137791110180731446276849944549989137750749182672229976339289
6782843089691255331469756165150764745043244282154620008264575289287346774402081997885888046957478011
1646139767343725894958316685403012475629142645390063503972021226902893794644749382886349951817648185
4136067600963066753294139671347282911915060022476800000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

c(4) 存 aValue6_1 * bValue5_1

存储情况: 指数 6,单位 896,长度 1, 起始地址 0

(0,5955886055993305285691415712062298005716989191259592654042759685344127698500672486955820193065790
0240943007657817473684008944448183219124163017666607770667585082169598239230274035517738648065600492
7020957328434927088560369202198833631115279881092773926965627768134466456512384193015861573428678606
4666635005011331478791132063966851087156984666487359501751899567095847780641166750534646259047113686
2647349666243426242677175204732314281064417939041868653741187423064985189556742640111598580035644021
8355767157528693974654538285844712912699558903932944483157465002687021497088080531004063984809426956
2358604940334808497006466890020625151696847972751557642596239213626916908988460979427133106101889563
4421094082310408889752954265842691732460538911784960000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

存储情况: 指数 5,单位 448,长度 1, 起始地址 1

                                                (1,9694263004962505086392401690955264982568406030898
0780584318918500422267412113574219692866745457476901227150829451488019891380234700614820259850285484
6716576624351495020427198482950071504229207167347655857677777717728670130493655739161064012610653069
1181703044651089722605188953806701403459213320281580808979934366732762630213094521387290373622010880
110511769587773348018906453191021747016944387416338325842441801187229699248022804686779727924815435)

     相乘结果

存储情况: 指数 6,单位 896,长度 2, 起始地址 0

(1,5773792585438794252562307877676717976169456385377668555928188436448201137657588417736165063791569
5152135767970894930392982487629730038255697578447546183667207711679897263370147607506467111974957088
1993069448928546331489236089991892190539494202447773568681254095982280000166078553824748652236378793
9989248788665179153029285776657965192833448773005434583207447519097345533989113144060995878222100999
9907888856848556140664267283584125547248250292448267706307993687184273141642130453313040794260720174
9945797220595436010808234019442510119850477023894014468491954951573249095985365443930618714467223027
7809003092812077558469877141990857314763373179717103319834104125173605142924823348873789176059310605
1510919596516597383419528863885914658417626113475028521106172578086006244192338573929940168631246625
494493472003756646435294329059737753018018243716058929014194645524403768308469674641663536024462025)
(0,9544570636875341844731053735315056219807678873069020518127268732899608946455213685691020828960759
7138964928364672024366872250524859738073457351558278004592383070525375510979455295282729342248241737
5697752042657479471675693586809078815829865696601055105387651388040098864387497246278882554275440885
7600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

c(5) 存 aValue6_1 * bValue5_2

存储情况: 指数 6,单位 896,长度 1, 起始地址 0

(0,5955886055993305285691415712062298005716989191259592654042759685344127698500672486955820193065790
0240943007657817473684008944448183219124163017666607770667585082169598239230274035517738648065600492
7020957328434927088560369202198833631115279881092773926965627768134466456512384193015861573428678606
4666635005011331478791132063966851087156984666487359501751899567095847780641166750534646259047113686
2647349666243426242677175204732314281064417939041868653741187423064985189556742640111598580035644021
8355767157528693974654538285844712912699558903932944483157465002687021497088080531004063984809426956
2358604940334808497006466890020625151696847972751557642596239213626916908988460979427133106101889563
4421094082310408889752954265842691732460538911784960000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

存储情况: 指数 5,单位 448,长度 1, 起始地址 0

                                                 (0,197279263577301937475241181613133611034663627851
5202571931406694535045876137066341991224634342598261779513831778093977638856970726976889712580805751
0582021572433308047674716735133261707391051522151192387575981548091019426482572038565507069453225443
4249273671769948347334599716938001213918871039620389693942360421958318020839392953433639640838963200
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

     相乘结果

存储情况: 指数 6,单位 896,长度 2, 起始地址 0

                                                  (1,11749728150766805592019148643677074919877232015
7713088657457083698207709904323283523719017750544856221065729769899888025603595414374645542379731578
0749633256207932485054047896658159907032614331631411472752257461533717186155623843841200717960295291
5769359031853719710686758449796497076766692637363080782724594195318639123801103530562965295007454807
2245620661465870507793164294714137629286820413173705690259643503477003904795996727957331366197755633
)(0,889419551726514807917452444655179399582022912935060670845723098202508176529376478501086059477952
4716681196596126698541647046294512650569157488099104286530741953661273842164514842145802584401633599
6491654900156861713525886554424369464320648300341846429443125057650891867136835536603816091752457757
4513908350621709500259738986355427719674282224875758676575234422020757363056949882508796892816275384
8863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941
8727489980942547421735824010636774045957417851608292301353580818400969963725242305608559037006242712
4341690900415369010593398383577793941097002775347200000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)

最后相加,结果是:

全值:

                                40238726007709377354370243392300398571937486421071463254379991042993
8512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087
0737599188236277271887325197795059509952761208749754624970436014182780946464962910563938874378864873
3711918104582578364784997701247663288983595573543251318532395846307555740911426241747434934755342864
6576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928
0908782973084313928444032812315586110369768013573042161687476096758713483120254785893207671691324484
2623613141250878020800026168315102734182797770478463586817016436502415369139828126481021309276124489
6359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475
8477284218896796462449451607653534081989013854424879849599533191017233555566021394503997362807501378
3761530712776192684903435262520001588853514733161170210396817592151090778801939317811419454525722386
5541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243
6716167621791689097799119037540312746222899880051954444142820121873617459926429565817466283029555702
9902432415318161721046583203678690611726015878352075151628422554026517048330422614397428693306169089
7968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367
6601769996128318607883861502794659551311565520360939881806121385586003014356945272242063446317974605
9468257310379008402443243846565724501440282188525247093519062092902313649327349756551395872055965422
8749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221
7659043399018860185665264850617997023561938970178600408118897299183110211712298459016419210688843871
2185564612496079872290851929681937238864261483965738229112312502418664935314397013742853192664987533
7218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864
3211390835062170950025973898635542771967428222487575867657523442202075736305694988250879689281627538
4886339690995982628095612145099487170124451646126037902930912088908694202851064018215439945715680594
1872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271
2434169090041536901059339838357779394109700277534720000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

直接相乘的结果是:

全值:

                                40238726007709377354370243392300398571937486421071463254379991042993
8512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087
0737599188236277271887325197795059509952761208749754624970436014182780946464962910563938874378864873
3711918104582578364784997701247663288983595573543251318532395846307555740911426241747434934755342864
6576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928
0908782973084313928444032812315586110369768013573042161687476096758713483120254785893207671691324484
2623613141250878020800026168315102734182797770478463586817016436502415369139828126481021309276124489
6359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475
8477284218896796462449451607653534081989013854424879849599533191017233555566021394503997362807501378
3761530712776192684903435262520001588853514733161170210396817592151090778801939317811419454525722386
5541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243
6716167621791689097799119037540312746222899880051954444142820121873617459926429565817466283029555702
9902432415318161721046583203678690611726015878352075151628422554026517048330422614397428693306169089
7968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367
6601769996128318607883861502794659551311565520360939881806121385586003014356945272242063446317974605
9468257310379008402443243846565724501440282188525247093519062092902313649327349756551395872055965422
8749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221
7659043399018860185665264850617997023561938970178600408118897299183110211712298459016419210688843871
2185564612496079872290851929681937238864261483965738229112312502418664935314397013742853192664987533
7218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864
3211390835062170950025973898635542771967428222487575867657523442202075736305694988250879689281627538
4886339690995982628095612145099487170124451646126037902930912088908694202851064018215439945715680594
1872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271
2434169090041536901059339838357779394109700277534720000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

两种方式的结果是否相同:True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值