BigInteger.Remainder(BigInteger, BigInteger) メソッド

定義

2 つの BigInteger 値に対する整数除算を実行し、その剰余を返します。Performs integer division on two BigInteger values and returns the remainder.

public:
 static System::Numerics::BigInteger Remainder(System::Numerics::BigInteger dividend, System::Numerics::BigInteger divisor);
public static System.Numerics.BigInteger Remainder (System.Numerics.BigInteger dividend, System.Numerics.BigInteger divisor);
static member Remainder : System.Numerics.BigInteger * System.Numerics.BigInteger -> System.Numerics.BigInteger
Public Shared Function Remainder (dividend As BigInteger, divisor As BigInteger) As BigInteger

パラメーター

dividend
BigInteger

被除数。The value to be divided.

divisor
BigInteger

除数。The value to divide by.

戻り値

dividenddivisor で除算した結果生じた剰余。The remainder after dividing dividend by divisor.

例外

divisor が 0 (ゼロ) です。divisor is 0 (zero).

次の例では、DivRem メソッドの剰余と、Remainder メソッドによって返される剰余を比較して、2つのメソッドが同一の剰余を計算することを確立しています。The following example compares the remainder from the DivRem method with the remainder returned by the Remainder method to establish that the two methods calculate identical remainders.

using System;
using System.Numerics;

public class Example
{
   public static void Main()
   {
      BigInteger dividend1 = BigInteger.Pow(Int64.MaxValue, 3);
      BigInteger dividend2 = dividend1 * BigInteger.MinusOne;
      BigInteger divisor1 = Int32.MaxValue;
      BigInteger divisor2 = divisor1 * BigInteger.MinusOne;
      BigInteger remainder1, remainder2;
      BigInteger divRem1 = BigInteger.Zero;
      BigInteger divRem2 = BigInteger.Zero;
       
      remainder1 = BigInteger.Remainder(dividend1, divisor1);
      remainder2 = BigInteger.Remainder(dividend2, divisor1);

      BigInteger.DivRem(dividend1, divisor1, out divRem1);
      Console.WriteLine("BigInteger.Remainder({0}, {1}) = {2}", 
                        dividend1, divisor1, remainder1);
      Console.WriteLine("BigInteger.DivRem({0}, {1}) = {2}", 
                        dividend1, divisor1, divRem1);                    
      if (remainder1.Equals(divRem1))
         Console.WriteLine("The remainders are equal.\n");
      
      BigInteger.DivRem(dividend2, divisor2, out divRem2);
      Console.WriteLine("BigInteger.Remainder({0}, {1}) = {2}", 
                        dividend2, divisor2, remainder2);
      Console.WriteLine("BigInteger.DivRem({0}, {1}) = {2}", 
                        dividend2, divisor2, divRem2);                    
      if (remainder2.Equals(divRem2))
         Console.WriteLine("The remainders are equal.\n");
   }
}
// The example displays the following output:
//    BigInteger.Remainder(7.8463771692333509522426190271E+56, 2147483647) = 1
//    BigInteger.DivRem(7.8463771692333509522426190271E+56, 2147483647) = 1
//    The remainders are equal.
//    
//    BigInteger.Remainder(-7.8463771692333509522426190271E+56, -2147483647) = -1
//    BigInteger.DivRem(-7.8463771692333509522426190271E+56, -2147483647) = -1
//    The remainders are equal.
Imports System.Numerics

Module Example
   Public Sub Main()
      Dim dividend1 As BigInteger = BigInteger.Pow(Int64.MaxValue, 3)
      Dim dividend2 As BigInteger = dividend1 * BigInteger.MinusOne
      Dim divisor1 As BigInteger = Int32.MaxValue
      Dim divisor2 As BigInteger = divisor1 * BigInteger.MinusOne
      Dim remainder1, remainder2 As BigInteger
      Dim divRem1 As BigInteger = BigInteger.Zero
      Dim divRem2 As BigInteger = BigInteger.Zero
       
      remainder1 = BigInteger.Remainder(dividend1, divisor1)
      remainder2 = BigInteger.Remainder(dividend2, divisor1)

      BigInteger.DivRem(dividend1, divisor1, divRem1)
      Console.WriteLine("BigInteger.Remainder({0}, {1}) = {2}", 
                        dividend1, divisor1, remainder1)
      Console.WriteLine("BigInteger.DivRem({0}, {1}) = {2}", 
                        dividend1, divisor1, divRem1)                    
      If remainder1.Equals(divRem1) Then Console.WriteLine("The remainders are equal.")
      Console.WriteLine()
      
      BigInteger.DivRem(dividend2, divisor2, divRem2)
      Console.WriteLine("BigInteger.Remainder({0}, {1}) = {2}", 
                        dividend2, divisor2, remainder2)
      Console.WriteLine("BigInteger.DivRem({0}, {1}) = {2}", 
                        dividend2, divisor2, divRem2)                    
      If remainder2.Equals(divRem2) Then Console.WriteLine("The remainders are equal.")
      Console.WriteLine()
   End Sub
End Module
' The example displays the following output:
'    BigInteger.Remainder(7.8463771692333509522426190271E+56, 2147483647) = 1
'    BigInteger.DivRem(7.8463771692333509522426190271E+56, 2147483647) = 1
'    The remainders are equal.
'    
'    BigInteger.Remainder(-7.8463771692333509522426190271E+56, -2147483647) = -1
'    BigInteger.DivRem(-7.8463771692333509522426190271E+56, -2147483647) = -1
'    The remainders are equal.

注釈

剰余の符号は dividend パラメーターの符号です。The sign of the remainder is the sign of the dividend parameter.

Remainder メソッドは、カスタム演算子をサポートしない言語に対して実装されます。The Remainder method is implemented for languages that do not support custom operators. その動作は、剰余演算子を使用した除算と同じです。Its behavior is identical to division using the modulus operator.

必要に応じて、メソッドは、剰余演算を実行する前に、他の整数型の暗黙的な変換を BigInteger オブジェクトに対して自動的に実行します。If necessary, the method automatically performs implicit conversion of other integral types to BigInteger objects before it performs the modulus operation.

適用対象

こちらもご覧ください