Int64x32Div32 fonction)

La Int64x32Div32 fonction implémente la formule ((a*b)+rnd)/ca est une valeur 64 bits et b, c et Rnd sont des valeurs 32 bits.

Syntaxe

LONGLONG WINAPI Int64x32Div32(
   LONGLONG a,
   LONG     b,
   LONG     c,
   LONG     rnd
);

Paramètres

un

Multiplicande.

b

Multiplicateur.

c

Division.

RND

Facteur d’arrondi.

Valeur retournée

Retourne soit le calcul, soit l' (a * b + rnd)/c une des valeurs suivantes.

Code de retour Description
0x7FFFFFFFFFFFFFFF
Un dépassement s’est produit, car le résultat est trop grand (positif).
0x8000000000000000
Un dépassement s’est produit, car le résultat est trop grand (négatif).

Remarques

L’arrondi sur la Division est vers zéro. La division par zéro est comptée comme une condition de dépassement de capacité.

Les horodatages et les temps de recherche étant des valeurs 64 bits, cette fonction est utile pour effectuer des conversions sur les systèmes 32 bits. Par exemple, dans MPEG-1, la référence de l’horloge système est 90-kHz, ou 90 000 graduations par seconde. La formule à convertir en temps de référence (unités de 100 nanosecondes) est

(timestamp * 1000) / 9

qui peut être calculé comme Int64x32Div32(timestamp, 1000, 9, 0) . Utilisez le paramètre Rnd comme facteur d’arrondi.

Configuration requise

Condition requise Valeur
En-tête
Wxutil. h (inclure Flux. h)
Bibliothèque
Strmbase. lib (versions commerciales);
Strmbasd. lib (versions Debug)

Voir aussi

Fonctions d’assistance diverses

llMulDiv