# Math.BigMul Method

## Definition

 BigMul(Int32, Int32) Produces the full product of two 32-bit numbers. BigMul(Int64, Int64, Int64) Produces the full product of two 64-bit numbers. BigMul(UInt64, UInt64, UInt64) Produces the full product of two unsigned 64-bit numbers.

## BigMul(Int32, Int32)

Produces the full product of two 32-bit numbers.

``````public:
static long BigMul(int a, int b);``````
``public static long BigMul (int a, int b);``
``static member BigMul : int * int -> int64``
``Public Shared Function BigMul (a As Integer, b As Integer) As Long``

#### Parameters

a
Int32

The first number to multiply.

b
Int32

The second number to multiply.

#### Returns

Int64

The number containing the product of the specified numbers.

### Examples

The following example demonstrates the use of the BigMul method to calculate the product of two integer values.

``````// This example demonstrates Math.BigMul()
using namespace System;
int main()
{
int int1 = Int32::MaxValue;
int int2 = Int32::MaxValue;
Int64 longResult;

//
longResult = Math::BigMul( int1, int2 );
Console::WriteLine( "Calculate the product of two Int32 values:" );
Console::WriteLine( "{0} * {1} = {2}", int1, int2, longResult );
}

/*
This example produces the following results:
Calculate the product of two Int32 values:
2147483647 * 2147483647 = 4611686014132420609
*/
``````
``````// This example demonstrates Math.BigMul()
using System;

class Sample
{
public static void Main()
{
int int1 = Int32.MaxValue;
int int2 = Int32.MaxValue;
long longResult;
//
longResult = Math.BigMul(int1, int2);
Console.WriteLine("Calculate the product of two Int32 values:");
Console.WriteLine("{0} * {1} = {2}", int1, int2, longResult);
}
}
/*
This example produces the following results:
Calculate the product of two Int32 values:
2147483647 * 2147483647 = 4611686014132420609
*/
``````
``````' This example demonstrates Math.BigMul()
Class Sample
Public Shared Sub Main()
Dim int1 As Integer = Int32.MaxValue
Dim int2 As Integer = Int32.MaxValue
Dim longResult As Long
'
longResult = Math.BigMul(int1, int2)
Console.WriteLine("Calculate the product of two Int32 values:")
Console.WriteLine("{0} * {1} = {2}", int1, int2, longResult)
End Sub
End Class
'
'This example produces the following results:
'Calculate the product of two Int32 values:
'2147483647 * 2147483647 = 4611686014132420609
'
``````

## BigMul(Int64, Int64, Int64)

Produces the full product of two 64-bit numbers.

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

#### Parameters

a
Int64

The first number to multiply.

b
Int64

The second number to multiply.

low
Int64

The low 64-bit of the product of the specified numbers.

#### Returns

Int64

The high 64-bit of the product of the specied numbers.

## BigMul(UInt64, UInt64, UInt64)

Important

This API is not CLS-compliant.

Produces the full product of two unsigned 64-bit numbers.

``````public:
static System::UInt64 BigMul(System::UInt64 a, System::UInt64 b, [Runtime::InteropServices::Out] System::UInt64 % low);``````
``````[System.CLSCompliant(false)]
public static ulong BigMul (ulong a, ulong b, out ulong low);``````
``````[<System.CLSCompliant(false)>]
static member BigMul : uint64 * uint64 * uint64 -> uint64``````
``Public Shared Function BigMul (a As ULong, b As ULong, ByRef low As ULong) As ULong``

#### Parameters

a
UInt64

The first number to multiply.

b
UInt64

The second number to multiply.

low
UInt64

The low 64-bit of the product of the specified numbers.

#### Returns

UInt64

The high 64-bit of the product of the specied numbers.

Attributes