Math.DivRem Método

Definição

Calcula o quociente de dois números e também retorna o restante em um parâmetro de saída.

Sobrecargas

DivRem(IntPtr, IntPtr)

Produz o quociente e o restante de dois números de tamanho nativo assinados.

DivRem(Int64, Int64, Int64)

Calcula o quociente de dois inteiros com sinal de 64 bits e também retorna o restante em um parâmetro de saída.

DivRem(Int32, Int32, Int32)

Calcula o quociente de dois inteiros de 32 bits com sinal e também retorna o resto em um parâmetro de saída.

DivRem(UIntPtr, UIntPtr)

Produz o quociente e o restante de dois números de tamanho nativo sem sinal.

DivRem(UInt64, UInt64)

Produz o quociente e o restante de dois números de 64 bits sem sinal.

DivRem(UInt32, UInt32)

Produz o quociente e o restante de dois números de 32 bits sem sinal.

DivRem(Int64, Int64)

Produz o quociente e o restante de dois números de 64 bits assinados.

DivRem(SByte, SByte)

Produz o quociente e o restante de dois números de 8 bits assinados.

DivRem(Int32, Int32)

Produz o quociente e o restante de dois números de 32 bits assinados.

DivRem(Int16, Int16)

Produz o quociente e o restante de dois números de 16 bits assinados.

DivRem(Byte, Byte)

Produz o quociente e o restante de dois números de 8 bits não assinados.

DivRem(UInt16, UInt16)

Produz o quociente e o restante de dois números de 16 bits não assinados.

DivRem(IntPtr, IntPtr)

Produz o quociente e o restante de dois números de tamanho nativo assinados.

public:
 static ValueTuple<IntPtr, IntPtr> DivRem(IntPtr left, IntPtr right);
public static (IntPtr,IntPtr) DivRem (IntPtr left, IntPtr right);
static member DivRem : nativeint * nativeint -> ValueTuple<nativeint, nativeint>
Public Shared Function DivRem (left As IntPtr, right As IntPtr) As ValueTuple(Of IntPtr, IntPtr)

Parâmetros

left
IntPtr

nativeint

O dividendo.

right
IntPtr

nativeint

O divisor.

Retornos

ValueTuple<IntPtr,IntPtr>

ValueTuple<nativeint,nativeint>

O quociente e o restante dos números especificados.

Aplica-se a

DivRem(Int64, Int64, Int64)

Calcula o quociente de dois inteiros com sinal de 64 bits e também retorna o restante em um parâmetro de saída.

public:
 static long DivRem(long a, long b, [Runtime::InteropServices::Out] long % result);
public static long DivRem (long a, long b, out long result);
static member DivRem : int64 * int64 * int64 -> int64
Public Shared Function DivRem (a As Long, b As Long, ByRef result As Long) As Long

Parâmetros

a
Int64

O dividendo.

b
Int64

O divisor.

result
Int64

Quando esse método retorna, contém o resto.

Retornos

Int64

O quociente dos números especificados.

Exceções

Exemplos

O exemplo a seguir demonstra o DivRem(Int64, Int64, Int64) método.

using System;

public class Example
{
   public static void Main()
   {
      // Define several positive and negative dividends.
      long[] dividends = { Int64.MaxValue, 13952, 0, -14032,
                           Int64.MinValue };
      // Define one positive and one negative divisor.
      long[] divisors = { 2000, -2000 };

      foreach (long divisor in divisors)
      {
         foreach (long dividend in dividends)
         {
            long remainder;
            long quotient = Math.DivRem(dividend, divisor, out remainder);
            Console.WriteLine(@"{0:N0} \ {1:N0} = {2:N0}, remainder {3:N0}",
                              dividend, divisor, quotient, remainder);
         }
      }
   }
}
// The example displays the following output:
//    9,223,372,036,854,775,807 \ 2,000 = 4,611,686,018,427,387, remainder 1,807
//    13,952 \ 2,000 = 6, remainder 1,952
//    0 \ 2,000 = 0, remainder 0
//    -14,032 \ 2,000 = -7, remainder -32
//    -9,223,372,036,854,775,808 \ 2,000 = -4,611,686,018,427,387, remainder -1,808
//    9,223,372,036,854,775,807 \ -2,000 = -4,611,686,018,427,387, remainder 1,807
//    13,952 \ -2,000 = -6, remainder 1,952
//    0 \ -2,000 = 0, remainder 0
//    -14,032 \ -2,000 = 7, remainder -32
//    -9,223,372,036,854,775,808 \ -2,000 = 4,611,686,018,427,387, remainder -1,808
Module Example
   Public Sub Main()
      ' Define several positive and negative dividends.
      Dim dividends() As Long = { Int64.MaxValue, 13952, 0, -14032, _
                                     Int64.MinValue }
      ' Define one positive and one negative divisor.
      Dim divisors() As Long = { 2000, -2000 }
      
      For Each divisor As Long In divisors
         For Each dividend As Long In dividends
            Dim remainder As Long 
            Dim quotient As Long = Math.DivRem(dividend, divisor, remainder)
            Console.WriteLine("{0:N0} \ {1:N0} = {2:N0}, remainder {3:N0}", _
                              dividend, divisor, quotient, remainder)
         Next
      Next                                
   End Sub
End Module
' The example displays the following output:
'    9,223,372,036,854,775,807 \ 2,000 = 4,611,686,018,427,387, remainder 1,807
'    13,952 \ 2,000 = 6, remainder 1,952
'    0 \ 2,000 = 0, remainder 0
'    -14,032 \ 2,000 = -7, remainder -32
'    -9,223,372,036,854,775,808 \ 2,000 = -4,611,686,018,427,387, remainder -1,808
'    9,223,372,036,854,775,807 \ -2,000 = -4,611,686,018,427,387, remainder 1,807
'    13,952 \ -2,000 = -6, remainder 1,952
'    0 \ -2,000 = 0, remainder 0
'    -14,032 \ -2,000 = 7, remainder -32
'    -9,223,372,036,854,775,808 \ -2,000 = 4,611,686,018,427,387, remainder -1,808

Comentários

O valor restante é igual ao resultado do operador restante.

Confira também

Aplica-se a

DivRem(Int32, Int32, Int32)

Calcula o quociente de dois inteiros de 32 bits com sinal e também retorna o resto em um parâmetro de saída.

public:
 static int DivRem(int a, int b, [Runtime::InteropServices::Out] int % result);
public static int DivRem (int a, int b, out int result);
static member DivRem : int * int * int -> int
Public Shared Function DivRem (a As Integer, b As Integer, ByRef result As Integer) As Integer

Parâmetros

a
Int32

O dividendo.

b
Int32

O divisor.

result
Int32

Quando esse método retorna, contém o resto.

Retornos

Int32

O quociente dos números especificados.

Exceções

Exemplos

O exemplo a seguir demonstra o DivRem(Int32, Int32, Int32) método.

using System;

public class Example
{
   public static void Main()
   {
      // Define several positive and negative dividends.
      int[] dividends = { Int32.MaxValue, 13952, 0, -14032,
                                     Int32.MinValue };
      // Define one positive and one negative divisor.
      int[] divisors = { 2000, -2000 };

      foreach (int divisor in divisors)
      {
         foreach (int dividend in dividends)
         {
            int remainder;
            int quotient = Math.DivRem(dividend, divisor, out remainder);
            Console.WriteLine(@"{0:N0} \ {1:N0} = {2:N0}, remainder {3:N0}",
                              dividend, divisor, quotient, remainder);
         }
      }
   }
}
// The example displays the following output:
//       2,147,483,647 \ 2,000 = 1,073,741, remainder 1,647
//       13,952 \ 2,000 = 6, remainder 1,952
//       0 \ 2,000 = 0, remainder 0
//       -14,032 \ 2,000 = -7, remainder -32
//       -2,147,483,648 \ 2,000 = -1,073,741, remainder -1,648
//       2,147,483,647 \ -2,000 = -1,073,741, remainder 1,647
//       13,952 \ -2,000 = -6, remainder 1,952
//       0 \ -2,000 = 0, remainder 0
//       -14,032 \ -2,000 = 7, remainder -32
//       -2,147,483,648 \ -2,000 = 1,073,741, remainder -1,648
Module Example
   Public Sub Main()
      ' Define several positive and negative dividends.
      Dim dividends() As Integer = { Int32.MaxValue, 13952, 0, -14032, _
                                     Int32.MinValue }
      ' Define one positive and one negative divisor.
      Dim divisors() As Integer = { 2000, -2000 }
      
      For Each divisor As Integer In divisors
         For Each dividend As Integer In dividends
            Dim remainder As Integer 
            Dim quotient As Integer = Math.DivRem(dividend, divisor, remainder)
            Console.WriteLine("{0:N0} \ {1:N0} = {2:N0}, remainder {3:N0}", _
                              dividend, divisor, quotient, remainder)
         Next
      Next                                
   End Sub
End Module
' The example displays the following output:
'       2,147,483,647 \ 2,000 = 1,073,741, remainder 1,647
'       13,952 \ 2,000 = 6, remainder 1,952
'       0 \ 2,000 = 0, remainder 0
'       -14,032 \ 2,000 = -7, remainder -32
'       -2,147,483,648 \ 2,000 = -1,073,741, remainder -1,648
'       2,147,483,647 \ -2,000 = -1,073,741, remainder 1,647
'       13,952 \ -2,000 = -6, remainder 1,952
'       0 \ -2,000 = 0, remainder 0
'       -14,032 \ -2,000 = 7, remainder -32
'       -2,147,483,648 \ -2,000 = 1,073,741, remainder -1,648

Comentários

O valor restante é igual ao resultado do operador restante.

Confira também

Aplica-se a

DivRem(UIntPtr, UIntPtr)

Importante

Esta API não está em conformidade com CLS.

Produz o quociente e o restante de dois números de tamanho nativo sem sinal.

public:
 static ValueTuple<UIntPtr, UIntPtr> DivRem(UIntPtr left, UIntPtr right);
[System.CLSCompliant(false)]
public static (UIntPtr,UIntPtr) DivRem (UIntPtr left, UIntPtr right);
public static (UIntPtr,UIntPtr) DivRem (UIntPtr left, UIntPtr right);
[<System.CLSCompliant(false)>]
static member DivRem : unativeint * unativeint -> ValueTuple<unativeint, unativeint>
static member DivRem : unativeint * unativeint -> ValueTuple<unativeint, unativeint>
Public Shared Function DivRem (left As UIntPtr, right As UIntPtr) As ValueTuple(Of UIntPtr, UIntPtr)

Parâmetros

left
UIntPtr

unativeint

O dividendo.

right
UIntPtr

unativeint

O divisor.

Retornos

ValueTuple<UIntPtr,UIntPtr>

ValueTuple<unativeint,unativeint>

O quociente e o restante dos números especificados.

Atributos

Aplica-se a

DivRem(UInt64, UInt64)

Importante

Esta API não está em conformidade com CLS.

Produz o quociente e o restante de dois números de 64 bits sem sinal.

public:
 static ValueTuple<System::UInt64, System::UInt64> DivRem(System::UInt64 left, System::UInt64 right);
[System.CLSCompliant(false)]
public static (ulong,ulong) DivRem (ulong left, ulong right);
public static (ulong,ulong) DivRem (ulong left, ulong right);
[<System.CLSCompliant(false)>]
static member DivRem : uint64 * uint64 -> ValueTuple<uint64, uint64>
static member DivRem : uint64 * uint64 -> ValueTuple<uint64, uint64>
Public Shared Function DivRem (left As ULong, right As ULong) As ValueTuple(Of ULong, ULong)

Parâmetros

left
UInt64

O dividendo.

right
UInt64

O divisor.

Retornos

ValueTuple<UInt64,UInt64>

O quociente e o restante dos números especificados.

Atributos

Aplica-se a

DivRem(UInt32, UInt32)

Importante

Esta API não está em conformidade com CLS.

Produz o quociente e o restante de dois números de 32 bits sem sinal.

public:
 static ValueTuple<System::UInt32, System::UInt32> DivRem(System::UInt32 left, System::UInt32 right);
[System.CLSCompliant(false)]
public static (uint,uint) DivRem (uint left, uint right);
public static (uint,uint) DivRem (uint left, uint right);
[<System.CLSCompliant(false)>]
static member DivRem : uint32 * uint32 -> ValueTuple<uint32, uint32>
static member DivRem : uint32 * uint32 -> ValueTuple<uint32, uint32>
Public Shared Function DivRem (left As UInteger, right As UInteger) As ValueTuple(Of UInteger, UInteger)

Parâmetros

left
UInt32

O dividendo.

right
UInt32

O divisor.

Retornos

ValueTuple<UInt32,UInt32>

O quociente e o restante dos números especificados.

Atributos

Aplica-se a

DivRem(Int64, Int64)

Produz o quociente e o restante de dois números de 64 bits assinados.

public:
 static ValueTuple<long, long> DivRem(long left, long right);
public static (long,long) DivRem (long left, long right);
static member DivRem : int64 * int64 -> ValueTuple<int64, int64>
Public Shared Function DivRem (left As Long, right As Long) As ValueTuple(Of Long, Long)

Parâmetros

left
Int64

O dividendo.

right
Int64

O divisor.

Retornos

ValueTuple<Int64,Int64>

O quociente e o restante dos números especificados.

Aplica-se a

DivRem(SByte, SByte)

Importante

Esta API não está em conformidade com CLS.

Produz o quociente e o restante de dois números de 8 bits assinados.

public:
 static ValueTuple<System::SByte, System::SByte> DivRem(System::SByte left, System::SByte right);
[System.CLSCompliant(false)]
public static (sbyte,sbyte) DivRem (sbyte left, sbyte right);
public static (sbyte,sbyte) DivRem (sbyte left, sbyte right);
[<System.CLSCompliant(false)>]
static member DivRem : sbyte * sbyte -> ValueTuple<sbyte, sbyte>
static member DivRem : sbyte * sbyte -> ValueTuple<sbyte, sbyte>
Public Shared Function DivRem (left As SByte, right As SByte) As ValueTuple(Of SByte, SByte)

Parâmetros

left
SByte

O dividendo.

right
SByte

O divisor.

Retornos

ValueTuple<SByte,SByte>

O quociente e o restante dos números especificados.

Atributos

Aplica-se a

DivRem(Int32, Int32)

Produz o quociente e o restante de dois números de 32 bits assinados.

public:
 static ValueTuple<int, int> DivRem(int left, int right);
public static (int,int) DivRem (int left, int right);
static member DivRem : int * int -> ValueTuple<int, int>
Public Shared Function DivRem (left As Integer, right As Integer) As ValueTuple(Of Integer, Integer)

Parâmetros

left
Int32

O dividendo.

right
Int32

O divisor.

Retornos

ValueTuple<Int32,Int32>

O quociente e o restante dos números especificados.

Aplica-se a

DivRem(Int16, Int16)

Produz o quociente e o restante de dois números de 16 bits assinados.

public:
 static ValueTuple<short, short> DivRem(short left, short right);
public static (short,short) DivRem (short left, short right);
static member DivRem : int16 * int16 -> ValueTuple<int16, int16>
Public Shared Function DivRem (left As Short, right As Short) As ValueTuple(Of Short, Short)

Parâmetros

left
Int16

O dividendo.

right
Int16

O divisor.

Retornos

ValueTuple<Int16,Int16>

O quociente e o restante dos números especificados.

Aplica-se a

DivRem(Byte, Byte)

Produz o quociente e o restante de dois números de 8 bits não assinados.

public:
 static ValueTuple<System::Byte, System::Byte> DivRem(System::Byte left, System::Byte right);
public static (byte,byte) DivRem (byte left, byte right);
static member DivRem : byte * byte -> ValueTuple<byte, byte>
Public Shared Function DivRem (left As Byte, right As Byte) As ValueTuple(Of Byte, Byte)

Parâmetros

left
Byte

O dividendo.

right
Byte

O divisor.

Retornos

ValueTuple<Byte,Byte>

O quociente e o restante dos números especificados.

Aplica-se a

DivRem(UInt16, UInt16)

Importante

Esta API não está em conformidade com CLS.

Produz o quociente e o restante de dois números de 16 bits não assinados.

public:
 static ValueTuple<System::UInt16, System::UInt16> DivRem(System::UInt16 left, System::UInt16 right);
[System.CLSCompliant(false)]
public static (ushort,ushort) DivRem (ushort left, ushort right);
public static (ushort,ushort) DivRem (ushort left, ushort right);
[<System.CLSCompliant(false)>]
static member DivRem : uint16 * uint16 -> ValueTuple<uint16, uint16>
static member DivRem : uint16 * uint16 -> ValueTuple<uint16, uint16>
Public Shared Function DivRem (left As UShort, right As UShort) As ValueTuple(Of UShort, UShort)

Parâmetros

left
UInt16

O dividendo.

right
UInt16

O divisor.

Retornos

ValueTuple<UInt16,UInt16>

O quociente e o restante dos números especificados.

Atributos

Aplica-se a