Partager via


_umul128

Section spécifique à Microsoft

Multiplie deux entiers non signés 64 bits passés comme les deux premiers arguments, place les 64 bits de poids fort du produit dans l'entier non signé 64 bits vers lequel pointe HighProduct et retourne les 64 bits de poids faible du produit.

unsigned __int64 _umul128(     unsigned __int64 Multiplier,     unsigned __int64 Multiplicand,     unsigned __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

Header

_umul128

ARM, x64

<intrin.h>

Exemple

// umul128.c
// processor: IPF, x64

#include <stdio.h>
#include <intrin.h>

#pragma intrinsic(_umul128)

int main()
{
    unsigned __int64 a = 0x0fffffffffffffffI64;
    unsigned __int64 b = 0xf0000000I64;
    unsigned __int64 c, d;

    d = _umul128(a, b, &c);

    printf_s("%#I64x * %#I64x = %#I64x%I64x\n", a, b, c, d);
}
  

Voir aussi

Référence

intrinsèques du compilateur