BigInteger.DivRem Metod

Definition

Överlagringar

Name Description
DivRem(BigInteger, BigInteger)

Beräknar kvoten och resten av två värden.

DivRem(BigInteger, BigInteger, BigInteger)

Delar upp ett BigInteger värde med ett annat, returnerar resultatet och returnerar resten i en utdataparameter.

DivRem(BigInteger, BigInteger)

Källa:
BigInteger.cs
Källa:
BigInteger.cs
Källa:
BigInteger.cs
Källa:
BigInteger.cs
Källa:
BigInteger.cs

Beräknar kvoten och resten av två värden.

public:
 static ValueTuple<System::Numerics::BigInteger, System::Numerics::BigInteger> DivRem(System::Numerics::BigInteger left, System::Numerics::BigInteger right) = System::Numerics::IBinaryInteger<System::Numerics::BigInteger>::DivRem;
public static(System.Numerics.BigInteger Quotient, System.Numerics.BigInteger Remainder) DivRem(System.Numerics.BigInteger left, System.Numerics.BigInteger right);
static member DivRem : System.Numerics.BigInteger * System.Numerics.BigInteger -> ValueTuple<System.Numerics.BigInteger, System.Numerics.BigInteger>
Public Shared Function DivRem (left As BigInteger, right As BigInteger) As ValueTuple(Of BigInteger, BigInteger)

Parametrar

left
BigInteger

Värdet som right delas.

right
BigInteger

Värdet som delar left.

Returer

Kvoten och resten av left dividerat med right.

Implementeringar

Undantag

right är noll.

Gäller för

DivRem(BigInteger, BigInteger, BigInteger)

Källa:
BigInteger.cs
Källa:
BigInteger.cs
Källa:
BigInteger.cs
Källa:
BigInteger.cs
Källa:
BigInteger.cs

Delar upp ett BigInteger värde med ett annat, returnerar resultatet och returnerar resten i en utdataparameter.

public:
 static System::Numerics::BigInteger DivRem(System::Numerics::BigInteger dividend, System::Numerics::BigInteger divisor, [Runtime::InteropServices::Out] System::Numerics::BigInteger % remainder);
public static System.Numerics.BigInteger DivRem(System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor, out System.Numerics.BigInteger remainder);
static member DivRem : System.Numerics.BigInteger * System.Numerics.BigInteger * BigInteger -> System.Numerics.BigInteger
Public Shared Function DivRem (dividend As BigInteger, divisor As BigInteger, ByRef remainder As BigInteger) As BigInteger

Parametrar

dividend
BigInteger

Värdet som ska delas.

divisor
BigInteger

Värdet som ska divideras med.

remainder
BigInteger

När den här metoden returnerar innehåller ett BigInteger värde som representerar resten från divisionen. Den här parametern skickas oinitierad.

Returer

Uppdelningens kvot.

Undantag

divisor är 0 (noll).

Exempel

I följande exempel skapas en matris med BigInteger värden. Sedan används varje element som kvot i en divisionsåtgärd som använder Divide metoden, divisionsoperatorn (/) och DivRem metoden.

using System;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      BigInteger divisor = BigInteger.Pow(Int64.MaxValue, 2);

      BigInteger[] dividends = { BigInteger.Multiply((BigInteger) Single.MaxValue, 2),
                                 BigInteger.Parse("90612345123875509091827560007100099"),
                                 BigInteger.One,
                                 BigInteger.Multiply(Int32.MaxValue, Int64.MaxValue),
                                 divisor + BigInteger.One };

      // Divide each dividend by divisor in three different ways.
      foreach (BigInteger dividend in dividends)
      {
         BigInteger quotient;
         BigInteger remainder = 0;

         Console.WriteLine("Dividend: {0:N0}", dividend);
         Console.WriteLine("Divisor:  {0:N0}", divisor);
         Console.WriteLine("Results:");
         Console.WriteLine("   Using Divide method:     {0:N0}",
                           BigInteger.Divide(dividend, divisor));
         Console.WriteLine("   Using Division operator: {0:N0}",
                           dividend / divisor);
         quotient = BigInteger.DivRem(dividend, divisor, out remainder);
         Console.WriteLine("   Using DivRem method:     {0:N0}, remainder {1:N0}",
                           quotient, remainder);

         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//    Dividend: 680,564,693,277,057,719,623,408,366,969,033,850,880
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     7
//       Using Division operator: 7
//       Using DivRem method:     7, remainder 85,070,551,165,415,408,691,630,012,479,406,342,137
//
//    Dividend: 90,612,345,123,875,509,091,827,560,007,100,099
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     0
//       Using Division operator: 0
//       Using DivRem method:     0, remainder 90,612,345,123,875,509,091,827,560,007,100,099
//
//    Dividend: 1
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     0
//       Using Division operator: 0
//       Using DivRem method:     0, remainder 1
//
//    Dividend: 19,807,040,619,342,712,359,383,728,129
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     0
//       Using Division operator: 0
//       Using DivRem method:     0, remainder 19,807,040,619,342,712,359,383,728,129
//
//    Dividend: 85,070,591,730,234,615,847,396,907,784,232,501,250
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     1
//       Using Division operator: 1
//       Using DivRem method:     1, remainder 1
open System
open System.Numerics

let divisor = BigInteger.Pow(Int64.MaxValue, 2)

let dividends =
    [| BigInteger.Multiply(bigint Single.MaxValue, 2)
       BigInteger.Parse "90612345123875509091827560007100099"
       BigInteger.One
       BigInteger.Multiply(Int32.MaxValue, Int64.MaxValue)
       divisor + BigInteger.One |]

// Divide each dividend by divisor in three different ways.
for dividend in dividends do
    let mutable quotient = 0I
    let mutable remainder = 0I

    printfn $"Dividend: {dividend:N0}"
    printfn $"Divisor:  {divisor:N0}"
    printfn "Results:"
    printfn $"   Using Divide method:     {BigInteger.Divide(dividend, divisor):N0}"
    printfn $"   Using Division operator: {dividend / divisor:N0}"
    quotient <- BigInteger.DivRem(dividend, divisor, &remainder)
    printfn $"   Using DivRem method:     {quotient:N0}, remainder {remainder:N0}"
    printfn ""
// The example displays the following output:
//    Dividend: 680,564,693,277,057,719,623,408,366,969,033,850,880
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     7
//       Using Division operator: 7
//       Using DivRem method:     7, remainder 85,070,551,165,415,408,691,630,012,479,406,342,137
//
//    Dividend: 90,612,345,123,875,509,091,827,560,007,100,099
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     0
//       Using Division operator: 0
//       Using DivRem method:     0, remainder 90,612,345,123,875,509,091,827,560,007,100,099
//
//    Dividend: 1
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     0
//       Using Division operator: 0
//       Using DivRem method:     0, remainder 1
//
//    Dividend: 19,807,040,619,342,712,359,383,728,129
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     0
//       Using Division operator: 0
//       Using DivRem method:     0, remainder 19,807,040,619,342,712,359,383,728,129
//
//    Dividend: 85,070,591,730,234,615,847,396,907,784,232,501,250
//    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
//    Results:
//       Using Divide method:     1
//       Using Division operator: 1
//       Using DivRem method:     1, remainder 1
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim divisor As BigInteger = BigInteger.Pow(Int64.MaxValue, 2)
      
      Dim dividends() As BigInteger = { BigInteger.Multiply(CType(Single.MaxValue, BigInteger), 2), 
                                        BigInteger.Parse("90612345123875509091827560007100099"), 
                                        BigInteger.One, 
                                        BigInteger.Multiply(Int32.MaxValue, Int64.MaxValue),
                                        divisor + BigInteger.One }

      ' Divide each dividend by divisor in three different ways.
      For Each dividend As BigInteger In dividends
         Dim quotient As BigInteger
         Dim remainder As BigInteger = 0
         
         ' Divide using division operator.
         Console.WriteLine("Dividend: {0:N0}", dividend)
         Console.WriteLine("Divisor:  {0:N0}", divisor)
         Console.WriteLine("Results:")
         Console.WriteLine("   Using Divide method:     {0:N0}", 
                           BigInteger.Divide(dividend, divisor))
         Console.WriteLine("   Using Division operator: {0:N0}", 
                           dividend / divisor)
         quotient = BigInteger.DivRem(dividend, divisor, remainder)
         Console.WriteLine("   Using DivRem method:     {0:N0}, remainder {1:N0}", 
                           quotient, remainder)
         
         Console.WriteLine()         
      Next                                        
   End Sub
End Module
' The example displays the following output:
'    Dividend: 680,564,693,277,057,719,623,408,366,969,033,850,880
'    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
'    Results:
'       Using Divide method:     7
'       Using Division operator: 7
'       Using DivRem method:     7, remainder 85,070,551,165,415,408,691,630,012,479,406,342,137
'    
'    Dividend: 90,612,345,123,875,509,091,827,560,007,100,099
'    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
'    Results:
'       Using Divide method:     0
'       Using Division operator: 0
'       Using DivRem method:     0, remainder 90,612,345,123,875,509,091,827,560,007,100,099
'    
'    Dividend: 1
'    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
'    Results:
'       Using Divide method:     0
'       Using Division operator: 0
'       Using DivRem method:     0, remainder 1
'    
'    Dividend: 19,807,040,619,342,712,359,383,728,129
'    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
'    Results:
'       Using Divide method:     0
'       Using Division operator: 0
'       Using DivRem method:     0, remainder 19,807,040,619,342,712,359,383,728,129
'    
'    Dividend: 85,070,591,730,234,615,847,396,907,784,232,501,250
'    Divisor:  85,070,591,730,234,615,847,396,907,784,232,501,249
'    Results:
'       Using Divide method:     1
'       Using Division operator: 1
'       Using DivRem method:     1, remainder 1

Kommentarer

Den här metoden bevarar både kvoten och resten som är resultatet av heltalsdivisionen. Om du inte är intresserad av resten använder Divide du metoden eller divisionsoperatorn. Om du bara är intresserad av resten använder Remainder du metoden.

Tecknet för det returnerade remainder värdet är samma som tecknet för parametern dividend .

Metodens DivRem beteende är identiskt med metodens Math.DivRem beteende.

Gäller för