Namespaces
Variants

std:: abs, std:: labs, std:: llabs, std:: imaxabs

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definiert in Header <cstdlib>
Definiert in Header <cmath>
int abs ( int num ) ;
(1) (constexpr seit C++23)
long abs ( long num ) ;
(2) (constexpr seit C++23)
long long abs ( long long num ) ;
(3) (seit C++11)
(constexpr seit C++23)
Definiert in Header <cstdlib>
long labs ( long num ) ;
(4) (constexpr seit C++23)
long long llabs ( long long num ) ;
(5) (seit C++11)
(constexpr seit C++23)
Definiert in Header <cinttypes>
(6) (seit C++11)
(constexpr seit C++23)
(7) (seit C++11)
(constexpr seit C++23)

Berechnet den absoluten Wert der Ganzzahl num . Das Verhalten ist undefiniert, wenn das Ergebnis nicht durch den Rückgabetyp dargestellt werden kann.

Wenn std::abs mit einem vorzeichenlosen integralen Argument aufgerufen wird, das nicht durch integral promotion in int konvertiert werden kann, ist das Programm fehlerhaft.

Überladung (6) von std::abs für std::intmax_t wird in <cinttypes> bereitgestellt, wenn und nur wenn std::intmax_t ein erweiterter Ganzzahltyp ist.

(seit C++11)

Inhaltsverzeichnis

Parameter

num - Ganzzahlwert

Rückgabewert

Der absolute Wert von num (d.h. |num| ), falls er darstellbar ist.

Hinweise

In 2's complement Systemen liegt der Absolutwert des negativsten Werts außerhalb des Bereichs, z.B. für den 32-Bit-2's complement Typ int ist INT_MIN gleich - 2147483648 , aber das hypothetische Ergebnis 2147483648 ist größer als INT_MAX , welches 2147483647 beträgt.

Beispiel

#include <climits>
#include <cstdlib>
#include <iostream>
int main()
{
    std::cout << std::showpos
              << "abs(+3) = " << std::abs(3) << '\n'
              << "abs(-3) = " << std::abs(-3) << '\n';
//  std::cout << std::abs(INT_MIN); // undefined behavior on 2's complement systems
}

Ausgabe:

abs(+3) = +3
abs(-3) = +3

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2192 C++98 Überladungen von std::abs waren
inkonsistent in zwei Headern deklariert
deklarierte diese Überladungen
in beiden Headern

Siehe auch

Absolutwert eines Gleitkommawerts ( |x| )
(Funktion)
gibt den Betrag einer komplexen Zahl zurück
(Funktionstemplate)
wendet die Funktion abs auf jedes Element des valarray an
(Funktionstemplate)
C-Dokumentation für abs , labs , llabs