# Math.BigMul Method

## Definition

Important

Some information relates to prerelease product that may be substantially modified before itâ€™s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

## Overloads

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

BigMul(Int64, Int64, Int64) |
Produces the full product of two 64-bit numbers. |

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

BigMul(Int32, Int32) |
Produces the full product of two 32-bit numbers. |

BigMul(Int64, Int64) |
Produces the full product of two 64-bit numbers. |

BigMul(UInt32, UInt32) |
Produces the full product of two unsigned 32-bit numbers. |

## BigMul(UInt64, UInt64, UInt64)

- Source:
- Math.cs

- Source:
- Math.cs

- Source:
- Math.cs

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

When this method returns, contains the low 64-bit of the product of the specified numbers.

#### Returns

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

- Attributes

### Applies to

## BigMul(Int64, Int64, Int64)

- Source:
- Math.cs

- Source:
- Math.cs

- Source:
- Math.cs

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

When this method returns, contains the low 64-bit of the product of the specified numbers.

#### Returns

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

### Applies to

## BigMul(UInt64, UInt64)

Important

This API is not CLS-compliant.

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

```
public:
static UInt128 BigMul(System::UInt64 a, System::UInt64 b);
```

```
[System.CLSCompliant(false)]
public static UInt128 BigMul (ulong a, ulong b);
```

```
[<System.CLSCompliant(false)>]
static member BigMul : uint64 * uint64 -> UInt128
```

`Public Shared Function BigMul (a As ULong, b As ULong) As UInt128`

#### Parameters

- a
- UInt64

The first number to multiply.

- b
- UInt64

The second number to multiply.

#### Returns

The full product of the specified numbers.

- Attributes

### Applies to

## BigMul(Int32, Int32)

- Source:
- Math.cs

- Source:
- Math.cs

- Source:
- Math.cs

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

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()
open System
let int1 = Int32.MaxValue
let int2 = Int32.MaxValue
let longResult = Math.BigMul(int1, int2)
printfn "Calculate the product of two Int32 values:"
printfn $"{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
'
```

### Applies to

## BigMul(Int64, Int64)

Produces the full product of two 64-bit numbers.

```
public:
static Int128 BigMul(long a, long b);
```

`public static Int128 BigMul (long a, long b);`

`static member BigMul : int64 * int64 -> Int128`

`Public Shared Function BigMul (a As Long, b As Long) As Int128`

#### Parameters

- a
- Int64

The first number to multiply.

- b
- Int64

The second number to multiply.

#### Returns

The full product of the specified numbers.

### Applies to

## BigMul(UInt32, UInt32)

Important

This API is not CLS-compliant.

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

```
public:
static System::UInt64 BigMul(System::UInt32 a, System::UInt32 b);
```

```
[System.CLSCompliant(false)]
public static ulong BigMul (uint a, uint b);
```

```
[<System.CLSCompliant(false)>]
static member BigMul : uint32 * uint32 -> uint64
```

`Public Shared Function BigMul (a As UInteger, b As UInteger) As ULong`

#### Parameters

- a
- UInt32

The first number to multiply.

- b
- UInt32

The second number to multiply.

#### Returns

The number containing the product of the specified numbers.

- Attributes