Aracılığıyla paylaş


_umul128

Microsoft'a Özgü

İlk iki bağımsız değişken olarak geçirilen iki 64 bit işaretsiz tamsayıyı çarpar ve ürünün en yüksek 64 bitini işaret ettiği 64 bit işaretsiz tamsayıya HighProduct yerleştirir ve ürünün düşük 64 bitini döndürür.

Sözdizimi

unsigned __int64 _umul128(
   unsigned __int64 Multiplier,
   unsigned __int64 Multiplicand,
   unsigned __int64 *HighProduct
);

Parametreler

Çarpanı
[in] Çarpmak için ilk 64 bit tamsayı.

Multiplicand
[in] Çarpmak için ikinci 64 bit tamsayı.

HighProduct
[out] Ürünün yüksek 64 biti.

Dönüş değeri

Ürünün düşük 64 biti.

Gereksinimler

Içsel Mimari Üst bilgi
_umul128 x64 <intrin.h>

Örnek

// umul128.c
// processor: 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);
}
0xfffffffffffffff * 0xf0000000 = 0xeffffffffffffff10000000

END Microsoft'a Özgü

Ayrıca bkz.

Derleyici iç bilgileri