Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Specific
Returns the high 64 bits of the product of two 64-bit signed integers.
__int64 __mulh(
__int64 a,
__int64 b
);
Parameters
[in] a
The first number to multiply.[in] b
The second number to multiply.
Return Value
The high 64 bits of the 128-bit result of the multiplication.
Requirements
Intrinsic |
Architecture |
---|---|
__mulh |
x64 |
Header file <intrin.h>
Remarks
This routine is only available as an intrinsic.
Example
// mulh.cpp
// processor: x64
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic (__mulh)
int main()
{
__int64 a = 0x0fffffffffffffffI64;
__int64 b = 0xf0000000I64;
__int64 result = __mulh(a, b); // the high 64 bits
__int64 result2 = a * b; // the low 64 bits
printf_s(" %#I64x * %#I64x = %#I64x%I64x\n",
a, b, result, result2);
}
0xfffffffffffffff * 0xf0000000 = 0xeffffffffffffff10000000