llMulDiv-Funktion

Die llMulDiv Funktion implementiert die Formel, wobei jeder Begriff ein ((a*b)+rnd)/c 64-Bit-Wert ist.

Zeitstempel und Suchzeiten sind 64-Bit-Werte, daher ist diese Funktion nützlich für Konvertierungen auf 32-Bit-Systemen. Die Formel für Bytes pro Sekunde ist z. B.

(Number of Bytes * Reference Time) / 10,000,000

kann als berechnet llMulDiv(nBytes, rtTime, 10000000, 0) werden. Verwenden Sie den rnd-Parameter als Rundungsfaktor.

Syntax

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

Parameter

Eine

Multiplikation.

b

Multiplikator.

c

Divisor.

Rnd

Rundungsfaktor.

Rückgabewert

Gibt entweder die (a * b + rnd)/c Berechnung oder einen der folgenden Werte zurück.

Rückgabecode Beschreibung
0x7FFFFFFFFFFFFFFF
Überlauf aufgetreten, weil das Ergebnis zu groß (positiv) ist.
0x8000000000000000
Ein Überlauf ist aufgetreten, weil das Ergebnis zu groß (negativ) ist.

Hinweise

Die Rundung für die Division ist in Richtung 0 (null) ausgerichtet. Division durch 0 (null) wird als Überlaufbedingung gezählt.

Anforderungen

Anforderung Wert
Header
Wxutil.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandels-Builds);
Strmbasd.lib (Debugbuilds)

Weitere Informationen

Verschiedene Hilfsfunktionen

Int64x32Div32