BigInteger.DivRem Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
DivRem(BigInteger, BigInteger) |
Oblicza iloraz i pozostałą część dwóch wartości. |
DivRem(BigInteger, BigInteger, BigInteger) |
Dzieli jedną BigInteger wartość przez inną, zwraca wynik i zwraca resztę w parametrze wyjściowym. |
DivRem(BigInteger, BigInteger)
- Źródło:
- BigInteger.cs
- Źródło:
- BigInteger.cs
- Źródło:
- BigInteger.cs
Oblicza iloraz i pozostałą część dwóch wartości.
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)
Parametry
- left
- BigInteger
Wartość dzieląca right
.
- right
- BigInteger
Wartość dzieląca left
wartość .
Zwraca
Iloraz i pozostała część dzielenia left
przez right
.
Implementuje
Dotyczy
DivRem(BigInteger, BigInteger, BigInteger)
- Źródło:
- BigInteger.cs
- Źródło:
- BigInteger.cs
- Źródło:
- BigInteger.cs
Dzieli jedną BigInteger wartość przez inną, zwraca wynik i zwraca resztę w parametrze wyjściowym.
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
Parametry
- dividend
- BigInteger
Wartość, która ma zostać podzielona.
- divisor
- BigInteger
Wartość, która ma być podzielona przez.
- remainder
- BigInteger
Gdy ta metoda zwraca wartość, zawiera wartość reprezentującą resztę BigInteger z dzielenia. Ten parametr jest przekazywany jako niezainicjowany.
Zwraca
Iloraz dzielenia.
Wyjątki
divisor
ma wartość 0 (zero).
Przykłady
Poniższy przykład tworzy tablicę BigInteger wartości. Następnie używa każdego elementu jako ilorazu Divide w operacji dzielenia, która używa metody, operatora dzielenia (/) i DivRem metody .
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
Uwagi
Ta metoda zachowuje zarówno iloraz i resztę, która wynika z dzielenia liczb całkowitych. Jeśli nie interesuje Cię pozostała część, użyj Divide metody lub operatora dzielenia. Jeśli interesuje Cię tylko reszta, użyj Remainder metody .
Znak zwróconej remainder
wartości jest taki sam jak znak parametru dividend
.
Zachowanie metody jest identyczne z zachowaniem DivRemMath.DivRem metody .