参看:abs()
整数的绝对值函数
#include
int abs(int val);
long labs(long val);
long long labs(long long val);#include
intmax_t labs(intmax_t val);
函数的abs()类返回它们的整数操作数val的绝对值,返回相同的类型。如果结果不能表示,则行为是未定义的。
整数
abs()类函数返回val的绝对值。
abs()
符合 ANSI/ISO 9899:1990 ‘ISO C90’;
labs()
符合 ANSI/ISO 9899:1990 ‘ISO C90’ ;
llabs()
符合 ANSI/ISO 9899:1999 ‘ISO C99’ imaxabs() conforms to ANSI/ISO 9899:1999 ‘ISO C99’;
参看:fabs(), fabsf()
浮点绝对值的函数
#include
double fabs(double x)
float fabsf(float x)
fabs()
函数的作用是:计算浮点数x的绝对值。
fabsf()
函数是fabs()
的单精度版本。
浮点值
函数的作用是:返回x的绝对值。
如果x为NaN,则返回NaN。
如果结果溢出,则返回0。
扩展:NaN(Not a Number,非数)
NaN(NotaNumber,非数)是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。首次引入NaN的是1985年的IEEE 754浮点数标准。
在浮点数运算中,NaN与无穷大的概念不同,尽管两者均是以浮点数表示实数时的特殊值。无效操作(Invalid Operation)同样也不同于算术溢出(可能返回无穷大)和算术下溢出(可能返回最小的一般数值、特殊数值、零等)。
IEEE 754-1985中,用指数部分全为1、小数部分非零表示NaN。以32位IEEE单精度浮点数的NaN为例,按位表示即:S111 1111 1AXX XXXX XXXX XXXX XXXX XXXX,S为符号位,符号位S的取值无关紧要;A是小数部分的最高位( the most significant bit of the significand),其取值表示了NaN的类型:X不能全为0,并被称为NaN的payload;
fabs()
适用ANSI/ISO 9899-1990
fabsf()
适用PTC MKS Toolkit UNIX api扩展