# Large Integers

The large integer functions and structures originally provided support for 64-bit values on 32-bit Windows. Now, your C compiler may support 64-bit integers natively. For example, Microsoft Visual C++ supports the **__int64** sized integer type. For more information, see the documentation included with your C compiler.

For information on 64-bit integers on 64-bit Windows, see The New Data Types.

## Large Integer Operations

Applications can multiply signed or unsigned 32-bit integers, generating 64-bit results, by using the
**Int32x32To64** and
**UInt32x32To64** functions. Applications can shift bits in 64-bit values to the left or right by using the
**Int64ShllMod32**,
**Int64ShraMod32**, and
**Int64ShrlMod32** functions. These functions provide logical and arithmetic shifting.

Applications can also multiply and divide 32-bit values in a single operation by using the
**MulDiv** function. Although the result of the operation is a 32-bit value, the function stores the intermediate result as a 64-bit value, so that information is not lost when large 32-bit values are multiplied and divided.

## Large Integer Reference