abs, div, labs, ldiv, imul_dbl, umul_dbl, llabs oder lldiv Subroutine
Zweck
Berechnet den absoluten Wert, die Division und die Multiplikation mit doppelter Genauigkeit von ganzen Zahlen.
Bibliothek
Standard-C-Bibliothek (libc.a)
Syntax
#include <stdlib.h> int abs ( i )
int i; #include <stdlib.h> long labs ( i )
long i; #include <stdlib.h>
#include <stdlib.h>
#include <stdlib.h> ldiv_t ldiv (Numerator, Denominator)
long Numerator: Denominator; #include <stdlib.h> void umul_dbl (i, j, Result)
unsigned long i, j;
unsigned long *Result; #include <stdlib.h> long long int llabs(i)
long long int i; #include <stdlib.h> lldiv_t lldiv (Numerator, Denominator)
long long int Numerator, Denominator;Beschreibung
Die Subroutine abs gibt den absoluten Wert ihres ganzzahligen Operanden zurück.
Die Subroutine div berechnet den Quotienten und den Rest der Division der Zahl, die durch den Parameter Zähler dargestellt wird, durch den durch den Parameter Denominator angegebenen Wert. Wenn die Division ungenau ist, ist das Vorzeichen des Ergebnisquotienten das des algebraischen Quotienten, und die Größe des Ergebnisquotienten ist die größte ganze Zahl kleiner als die Größe des algebraischen Quotienten. Wenn das Ergebnis nicht dargestellt werden kann (z. B. wenn der Nenner 0 ist) ist das Verhalten nicht definiert.
Die Subroutinen labs und ldiv sind aus Gründen der Kompatibilität mit der ANSI-C-Bibliothek enthalten und akzeptieren lange ganze Zahlen als Parameter und nicht als ganze Zahlen.
Die Subroutine imul_dbl berechnet das Produkt aus zwei signierten Longs, i und j, und speichert das doppelt lange Produkt in einem Array von zwei signierten Longs, auf die der Parameter Ergebnis verweist.
Die Subroutine umul_dbl berechnet das Produkt aus zwei Langzeichen ohne Vorzeichen ( i und j ) und speichert das lange Produkt ohne Vorzeichen in einem Array von zwei Langzeichen ohne Vorzeichen, auf die der Parameter Ergebnis verweist.
Die Subroutinen llabs und lldiv berechnen den absoluten Wert und die Division langer langer Ganzzahlen. Diese Subroutinen arbeiten unter denselben Einschränkungen wie die Subroutinen abs und div .
Parameter
| Element | Beschreibung |
|---|---|
| i | Gibt für die Subroutine abs eine ganze Zahl an; für labs und imul_dbl eine ganze Zahl des Typs 'long'; für die Subroutine umul_dbl eine ganze Zahl des Typs 'long' ohne Vorzeichen; für die Subroutine llabs eine ganze Zahl des Typs 'long long'. |
| Zähler | Gibt für die Subroutine div eine ganze Zahl an; für die Subroutine ldiv eine ganze Zahl des Typs 'long'; für lldiveine ganze Zahl des Typs 'long long'. |
| j | Gibt für die Subroutine imul_dbl eine lange ganze Zahl an; für die Subroutine umul_dbl eine lange ganze Zahl ohne Vorzeichen. |
| Nenner | Gibt für die Subroutine div eine ganze Zahl an; für die Subroutine ldiv eine ganze Zahl des Typs 'long'; für lldiveine ganze Zahl des Typs 'long long'. |
| Ergebnis | Gibt für die Subroutine imul_dbl eine lange ganze Zahl an; für die Subroutine umul_dbl eine lange ganze Zahl ohne Vorzeichen. |
Rückgabewerte
Die Subroutinen abs, labsund llabs geben den absoluten Wert zurück. Die Subroutinen imul_dbl und umul_dbl haben keine Rückgabewerte. Die Subroutine div gibt eine Struktur des Typs div_tzurück. Die Subroutine ldiv gibt eine Struktur des Typs ldiv_tzurück, die den Quotienten und den Rest enthält. Die Struktur wird wie folgt angezeigt:
struct ldiv_t {
int quot; /* quotient */
int rem; /* remainder */
};Die Subroutine lldiv gibt eine Struktur des Typs lldiv_tzurück, die den Quotienten und den Rest enthält.