_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.
Syntaxe
__int64 _mul128(
__int64 Multiplier,
__int64 Multiplicand,
__int64 *HighProduct
);
Paramètres
Multiplicateur
[in] Premier entier 64 bits à multiplier.
Multiplicande
[in] Deuxième entier 64 bits à multiplier.
HighProduct
[out] Les 64 bits élevés du produit.
Valeur retournée
64 bits de poids faible du produit.
Spécifications
Intrinsic | 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);
}
0xfffffffffffffff * 0xf0000000 = 0xeffffffffffffff10000000
FIN de la section spécifique à Microsoft