Condividi tramite


abs, _abs64

Calcola il valore assoluto.

int abs( 
   int n 
);
long abs( 
   long n 
);   // C++ only
long long abs( 
   long long n 
);   // C++ only
double abs( 
   double n 
);   // C++ only
long double abs(
   long double n
);   // C++ only
float abs(
   float n 
);   // C++ only
__int64 _abs64( 
   __int64 n 
);

Parametri

  • n
    Valore Integer.

Valore restituito

La funzione abs restituisce il valore assoluto del relativo parametro. Nessun ritorno di errore.

Note

Poiché C++ consente l'overload, è possibile chiamare gli overload di abs che accettano e restituiscono long, long long, float, double, e i valori long double. In un programma C, abs accetta e restituisce sempre un int.

Specifici di Microsoft

Poiché l'intervallo degli integer negativi che possono essere rappresentati utilizzando un qualunque tipo integrale è maggiore dell'intervallo degli interi positivi rappresentabili utilizzando lo stesso tipo, è possibile fornire un argomento per abs che non può essere convertito. Se il valore assoluto dell'argomento non può essere rappresentato dal tipo restituito, le funzioni abs restituiscono il valore dell'argomento non modificato. In particolare, abs(INT_MIN) restituisce INT_MIN, labs(LONG_MIN) restituisce LONG_MIN, llabs(LLONG_MIN) restituisce LLONG_MIN e _I64_MIN restituisce _abs64(_I64_MIN). Ciò significa che le funzioni abs non possono essere utilizzate per garantire un valore positivo.

Specifica END Microsoft

Requisiti

Routine

Intestazione obbligatoria

abs

<math.h>

_abs64

<stdlib.h>

Esempio

Questo programma calcola e visualizza i valori assoluti dei diversi numeri.

// crt_abs.c
// Build: cl /W3 /TC crt_abs.c
// This program demonstrates the use of the abs function
// by computing and displaying the absolute values of
// several numbers.

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <limits.h>

int main( void )
{
    int ix = -4;
    long lx = -41567L;
    long long llx = -9876543210LL;
    __int64 wx = -1;

    // absolute 32 bit integer value
    printf_s("The absolute value of %d is %d\n", ix, abs(ix));

    // absolute long integer value
    printf_s("The absolute value of %ld is %ld\n", lx, labs(lx));

    // absolute long long integer value
    printf_s("The absolute value of %lld is %lld\n", llx, llabs(llx));

    // absolute 64 bit integer value
    printf_s("The absolute value of 0x%.16I64x is 0x%.16I64x\n", wx, 
        _abs64(wx));

    // Integer error cases:
    printf_s("Microsoft implementation-specific results:\n");
    printf_s(" abs(INT_MIN) returns %d\n", abs(INT_MIN));
    printf_s(" labs(LONG_MIN) returns %ld\n", labs(LONG_MIN));
    printf_s(" llabs(LLONG_MIN) returns %lld\n", llabs(LLONG_MIN));
    printf_s(" _abs64(_I64_MIN) returns 0x%.16I64x\n", _abs64(_I64_MIN));
}
  

Equivalente .NET Framework

System::Math::Abs

Vedere anche

Riferimenti

Conversione dei dati

Supporto a virgola mobile

_cabs

fabs, fabsf

labs, llabs

imaxabs