__mul128
Section spécifique à Microsoft
Multiplie deux entiers 64 bits passés comme les deux premiers arguments, place les 64 bits de poids fort du produit dans l'entier 64 bits vers lequel pointe HighProduct et retourne les 64 bits de poids faible du produit.
__int64 _mul128( __int64 Multiplier, __int64 Multiplicand, __int64 *HighProduct );
Paramètres
[in] Multiplier
Premier entier de 64 bits à multiplier.[in] Multiplicand
Second entier de 64 bits à multiplier.[out] HighProduct
64 bits de poids fort du produit.
Valeur de retour
64 bits de poids faible du produit.
Configuration requise
Intrinsèque |
Architecture |
---|---|
__mul128 |
x64 |
Fichier d'en-tête <intrin.h>
Exemple
// mul128.c
// processor: x64
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic(_mul128)
int main()
{
__int64 a = 0x0fffffffffffffffI64;
__int64 b = 0xf0000000I64;
__int64 c, d;
d = _mul128(a, b, &c);
printf_s("%#I64x * %#I64x = %#I64x%I64x\n", a, b, c, d);
}