Math.DivRem Yöntem

Tanım

İki sayının bölüm değerini hesaplar ve bir çıkış parametresinde kalanı döndürür.

Aşırı Yüklemeler

DivRem(IntPtr, IntPtr)

İmzalı iki yerel boyutlu sayının bölüm ve geri kalanını üretir.

DivRem(Int64, Int64, Int64)

İki 64 bit imzalı tamsayının çekirdeğini hesaplar ve bir çıkış parametresinde kalanı döndürür.

DivRem(Int32, Int32, Int32)

İki 32 bit işaretli tamsayının bölüm değerini hesaplar ve bir çıkış parametresinde kalanı döndürür.

DivRem(UIntPtr, UIntPtr)

İmzalanmamış iki yerel boyutlu sayının bölüm ve geri kalanını üretir.

DivRem(UInt64, UInt64)

İmzalanmamış iki 64 bit sayının bölüm ve geri kalanını üretir.

DivRem(UInt32, UInt32)

İki imzasız 32 bit sayının bölüm ve geri kalanını üretir.

DivRem(Int64, Int64)

İki imzalı 64 bit sayının çekirdeğini ve kalanını üretir.

DivRem(SByte, SByte)

İki imzalı 8 bitlik sayının bölüm ve geri kalanını üretir.

DivRem(Int32, Int32)

İki imzalı 32 bit sayının çekirdeğini ve kalanını üretir.

DivRem(Int16, Int16)

İki imzalı 16 bit sayının çekirdeğini ve kalanını üretir.

DivRem(Byte, Byte)

İki işaretsiz 8 bit sayının bölüm ve geri kalanını üretir.

DivRem(UInt16, UInt16)

İmzalanmamış iki 16 bit sayının çekirdeğini ve kalanını üretir.

DivRem(IntPtr, IntPtr)

İmzalı iki yerel boyutlu sayının bölüm ve geri kalanını üretir.

public:
 static ValueTuple<IntPtr, IntPtr> DivRem(IntPtr left, IntPtr right);
public static (nint Quotient, nint Remainder) DivRem (nint left, nint right);
public static (IntPtr Quotient, IntPtr Remainder) 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)

Parametreler

left
IntPtr

nint

nativeint

Kar payı.

right
IntPtr

nint

nativeint

Bölen.

Döndürülenler

ValueTuple<IntPtr,IntPtr>

ValueTuple<nint,nint>

ValueTuple<nativeint,nativeint>

Belirtilen sayıların bölüm ve kalan kısmı.

Şunlara uygulanır

DivRem(Int64, Int64, Int64)

İki 64 bit imzalı tamsayının çekirdeğini hesaplar ve bir çıkış parametresinde kalanı döndürür.

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

Parametreler

a
Int64

Kar payı.

b
Int64

Bölen.

result
Int64

Bu yöntem döndürdüğünde, kalanı içerir.

Döndürülenler

Int64

Belirtilen sayıların bölüm.

Özel durumlar

b sıfırdır.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir DivRem(Int64, Int64, Int64) .

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
open System

// Define several positive and negative dividends.
let dividends =
    [ Int64.MaxValue; 13952; 0; -14032; Int64.MinValue ]
// Define one positive and one negative divisor.
let divisors = [ 2000; -2000 ]

for divisor in divisors do
    for dividend in dividends do
        let quotient, remainder = Math.DivRem(dividend, divisor)
        printfn $@"{dividend:N0} \ {divisor:N0} = {quotient:N0}, remainder {remainder:N0}"

// 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

Açıklamalar

Kalan değer, kalan işlecin sonucuna eşittir.

Ayrıca bkz.

Şunlara uygulanır

DivRem(Int32, Int32, Int32)

İki 32 bit işaretli tamsayının bölüm değerini hesaplar ve bir çıkış parametresinde kalanı döndürür.

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

Parametreler

a
Int32

Kar payı.

b
Int32

Bölen.

result
Int32

Bu yöntem döndürdüğünde, kalanı içerir.

Döndürülenler

Int32

Belirtilen sayıların bölüm.

Özel durumlar

b sıfırdır.

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir DivRem(Int32, Int32, Int32) .

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
open System

// Define several positive and negative dividends.
let dividends = 
    [ Int32.MaxValue; 13952; 0; -14032; Int32.MinValue ]
// Define one positive and one negative divisor.
let divisors = [ 2000; -2000 ]

for divisor in divisors do
    for dividend in dividends do
        let quotient, remainder = Math.DivRem(dividend, divisor)
        printfn $@"{dividend:N0} \ {divisor:N0} = {quotient:N0}, remainder {remainder:N0}"

// 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

Açıklamalar

Kalan değer, kalan işlecin sonucuna eşittir.

Ayrıca bkz.

Şunlara uygulanır

DivRem(UIntPtr, UIntPtr)

Önemli

Bu API, CLS uyumlu değildir.

İmzalanmamış iki yerel boyutlu sayının bölüm ve geri kalanını üretir.

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

Parametreler

left
UIntPtr

nuint

unativeint

Kar payı.

right
UIntPtr

nuint

unativeint

Bölen.

Döndürülenler

ValueTuple<UIntPtr,UIntPtr>

ValueTuple<nuint,nuint>

ValueTuple<unativeint,unativeint>

Belirtilen sayıların bölüm ve kalan kısmı.

Öznitelikler

Şunlara uygulanır

DivRem(UInt64, UInt64)

Önemli

Bu API, CLS uyumlu değildir.

İmzalanmamış iki 64 bit sayının bölüm ve geri kalanını üretir.

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

Parametreler

left
UInt64

Kar payı.

right
UInt64

Bölen.

Döndürülenler

ValueTuple<UInt64,UInt64>

Belirtilen sayıların bölüm ve kalan kısmı.

Öznitelikler

Şunlara uygulanır

DivRem(UInt32, UInt32)

Önemli

Bu API, CLS uyumlu değildir.

İki imzasız 32 bit sayının bölüm ve geri kalanını üretir.

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

Parametreler

left
UInt32

Kar payı.

right
UInt32

Bölen.

Döndürülenler

ValueTuple<UInt32,UInt32>

Belirtilen sayıların bölüm ve kalan kısmı.

Öznitelikler

Şunlara uygulanır

DivRem(Int64, Int64)

İki imzalı 64 bit sayının çekirdeğini ve kalanını üretir.

public:
 static ValueTuple<long, long> DivRem(long left, long right);
public static (long Quotient, long Remainder) 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)

Parametreler

left
Int64

Kar payı.

right
Int64

Bölen.

Döndürülenler

ValueTuple<Int64,Int64>

Belirtilen sayıların bölüm ve kalan kısmı.

Şunlara uygulanır

DivRem(SByte, SByte)

Önemli

Bu API, CLS uyumlu değildir.

İki imzalı 8 bitlik sayının bölüm ve geri kalanını üretir.

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

Parametreler

left
SByte

Kar payı.

right
SByte

Bölen.

Döndürülenler

ValueTuple<SByte,SByte>

Belirtilen sayıların bölüm ve kalan kısmı.

Öznitelikler

Şunlara uygulanır

DivRem(Int32, Int32)

İki imzalı 32 bit sayının çekirdeğini ve kalanını üretir.

public:
 static ValueTuple<int, int> DivRem(int left, int right);
public static (int Quotient, int Remainder) 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)

Parametreler

left
Int32

Kar payı.

right
Int32

Bölen.

Döndürülenler

ValueTuple<Int32,Int32>

Belirtilen sayıların bölüm ve kalan kısmı.

Şunlara uygulanır

DivRem(Int16, Int16)

İki imzalı 16 bit sayının çekirdeğini ve kalanını üretir.

public:
 static ValueTuple<short, short> DivRem(short left, short right);
public static (short Quotient, short Remainder) 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)

Parametreler

left
Int16

Kar payı.

right
Int16

Bölen.

Döndürülenler

ValueTuple<Int16,Int16>

Belirtilen sayıların bölüm ve kalan kısmı.

Şunlara uygulanır

DivRem(Byte, Byte)

İki işaretsiz 8 bit sayının bölüm ve geri kalanını üretir.

public:
 static ValueTuple<System::Byte, System::Byte> DivRem(System::Byte left, System::Byte right);
public static (byte Quotient, byte Remainder) 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)

Parametreler

left
Byte

Kar payı.

right
Byte

Bölen.

Döndürülenler

ValueTuple<Byte,Byte>

Belirtilen sayıların bölüm ve kalan kısmı.

Şunlara uygulanır

DivRem(UInt16, UInt16)

Önemli

Bu API, CLS uyumlu değildir.

İmzalanmamış iki 16 bit sayının çekirdeğini ve kalanını üretir.

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

Parametreler

left
UInt16

Kar payı.

right
UInt16

Bölen.

Döndürülenler

ValueTuple<UInt16,UInt16>

Belirtilen sayıların bölüm ve kalan kısmı.

Öznitelikler

Şunlara uygulanır