MulDiv: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
 
Zeile 3: Zeile 3:
 
Diese Funktion multipliziert zwei 32Bit-Ganzzahlen und dividiert das 64Bit-Ergebnis durch eine dritte 32Bit-Ganzzahl.
 
Diese Funktion multipliziert zwei 32Bit-Ganzzahlen und dividiert das 64Bit-Ergebnis durch eine dritte 32Bit-Ganzzahl.
  
<code vb>
+
<syntaxhighlight lang="vb">
 
  Declare Function MulDiv Lib "kernel32" Alias "MulDiv" ( _
 
  Declare Function MulDiv Lib "kernel32" Alias "MulDiv" ( _
 
                         ByVal nNumber As Long, _
 
                         ByVal nNumber As Long, _
 
                         ByVal nNumerator As Long, _
 
                         ByVal nNumerator As Long, _
 
                         ByVal nDenominator As Long) As Long
 
                         ByVal nDenominator As Long) As Long
</code>
+
</syntaxhighlight>
  
  
Zeile 31: Zeile 31:
 
==Beispiel==
 
==Beispiel==
  
<code vb>
+
<syntaxhighlight lang="vb">
 
     Dim Result As Long
 
     Dim Result As Long
 
    
 
    
Zeile 39: Zeile 39:
 
     ' Dieser hingegen nicht:
 
     ' Dieser hingegen nicht:
 
     Result = MulDiv(40000, 50000, 60000)
 
     Result = MulDiv(40000, 50000, 60000)
</code>
+
</syntaxhighlight>
  
 
==Quelle(n)==
 
==Quelle(n)==

Aktuelle Version vom 7. Oktober 2016, 22:23 Uhr


Diese Funktion multipliziert zwei 32Bit-Ganzzahlen und dividiert das 64Bit-Ergebnis durch eine dritte 32Bit-Ganzzahl.

 Declare Function MulDiv Lib "kernel32" Alias "MulDiv" ( _
                         ByVal nNumber As Long, _
                         ByVal nNumerator As Long, _
                         ByVal nDenominator As Long) As Long


Parameter

nNumber [Übergabe]

Die erste 32Bit-Ganzzahl für die Multiplikation

nNumerator [Übergabe]

Die zweite 32-Bit-Ganzzahl für die Multiplikation

nDenominator

Die 32Bit-Ganzzahl, durch die das Ergebnis dividiert wird.


Rückgabe

Die MulDiv-Funktion gibt das auf die nächste 32Bit-Ganzzahl gerundete Ergebnis der Rechnung zurück. Wenn ein Überlauf auftritt oder nDenominator 0 ist, gibt die MulDiv-Funktion -1 zurück.


Beispiel

    Dim Result As Long
  
    ' Dieser Aufruf produziert einen Überlauf:
    ' Result = 40000 * 50000 / 60000
  
    ' Dieser hingegen nicht:
    Result = MulDiv(40000, 50000, 60000)

Quelle(n)

MSDN Library - MulDiv
API-Guide von AllAPI.net