Прочитать на английском

Поделиться через


BigInteger.DivRem Метод

Определение

Перегрузки

DivRem(BigInteger, BigInteger)

Вычисляет коэффициент и остаток двух значений.

DivRem(BigInteger, BigInteger, BigInteger)

Делит одно значение BigInteger на другое, возвращает результат, а также возвращает остаток в виде параметра вывода.

DivRem(BigInteger, BigInteger)

Исходный код:
BigInteger.cs
Исходный код:
BigInteger.cs
Исходный код:
BigInteger.cs

Вычисляет коэффициент и остаток двух значений.

C#
public static (System.Numerics.BigInteger Quotient, System.Numerics.BigInteger Remainder) DivRem (System.Numerics.BigInteger left, System.Numerics.BigInteger right);

Параметры

left
BigInteger

Значение, которое right делится.

right
BigInteger

Значение, разделяющее left.

Возвращаемое значение

Частное и остаток left разделены rightна .

Реализации

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET 7, 8, 9

DivRem(BigInteger, BigInteger, BigInteger)

Исходный код:
BigInteger.cs
Исходный код:
BigInteger.cs
Исходный код:
BigInteger.cs

Делит одно значение BigInteger на другое, возвращает результат, а также возвращает остаток в виде параметра вывода.

C#
public static System.Numerics.BigInteger DivRem (System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor, out System.Numerics.BigInteger remainder);

Параметры

dividend
BigInteger

Значение, которое необходимо разделить.

divisor
BigInteger

Значение, на которое необходимо разделить.

remainder
BigInteger

После выполнения данного метода содержит значение BigInteger, представляющее остаток от деления. Этот параметр передается неинициализированным.

Возвращаемое значение

Частное от деления.

Исключения

Значение параметра divisor равно нулю (0).

Примеры

В следующем примере создается массив значений BigInteger . Затем каждый элемент используется в качестве коэффициента в операции деления, которая использует Divide метод, оператор деления (/) и DivRem метод .

C#
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

Комментарии

Этот метод сохраняет как коэффициент, так и остаток, полученный в результате целочисленного деления. Если вас не интересует остаток, используйте Divide метод или оператор деления. Если вас интересует только остаток, используйте Remainder метод .

Знак возвращаемого remainder значения совпадает со знаком dividend параметра .

Поведение метода идентично Math.DivRem поведению DivRem метода .

Применяется к

.NET 9 и другие версии
Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0