Math.DivRem Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Beräknar kvoten för två tal och returnerar även resten i en utdataparameter.
Överlagringar
| Name | Description |
|---|---|
| DivRem(Int64, Int64, Int64) |
Beräknar kvoten för två 64-bitars signerade heltal och returnerar även resten i en utdataparameter. |
| DivRem(Int32, Int32, Int32) |
Beräknar kvoten för två 32-bitars signerade heltal och returnerar även resten i en utdataparameter. |
DivRem(Int64, Int64, Int64)
Beräknar kvoten för två 64-bitars signerade heltal och returnerar även resten i en utdataparameter.
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
Parametrar
- a
- Int64
Utdelningen.
- b
- Int64
Divisorn.
- result
- Int64
När den här metoden returnerar innehåller resten.
Returer
Kvoten för de angivna talen.
Undantag
b är noll.
a är Int64.MinValue och b är -1.
Exempel
I följande exempel visas DivRem(Int64, Int64, Int64) metoden.
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
Kommentarer
Restvärdet är lika med resultatet av restoperatorn.
Se även
Gäller för
DivRem(Int32, Int32, Int32)
Beräknar kvoten för två 32-bitars signerade heltal och returnerar även resten i en utdataparameter.
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
Parametrar
- a
- Int32
Utdelningen.
- b
- Int32
Divisorn.
- result
- Int32
När den här metoden returnerar innehåller resten.
Returer
Kvoten för de angivna talen.
Undantag
b är noll.
a är Int32.MinValue och b är -1.
Exempel
I följande exempel visas DivRem(Int32, Int32, Int32) metoden.
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
Kommentarer
Restvärdet är lika med resultatet av restoperatorn.