绝对值

绝对值用来表示一个数至原点的距离之大小。绝对值的概念也可以定义在复数、有序环以及域上。

算法

C 语言关于绝对值的函数有： abs(), labs(), llabs()（在 C99 中），fabs()、fabsf() 与 fabsl() 函数计算一个对象的绝对值。当输入值不是最大负整数时，很容易写出计算绝对值的宏或函数。
以下宏可接受整数或浮点数：
#define abs(i) ((i)>0 ? (i) : (-i))
如果以函数计算，需要写多个函数，多载来处理不同数据类型：
int abs (int);float abs (float);double abs (double);int abs (int i) {
  if (i>0) {
    return i;
  } else {
    return -i;
  }}
关于浮点数的绝对值算法就要用点技巧，因为要为无穷大及 NaN（Not a Number）撰写特别的程式码。
在 Pascal、Fortran 和 Matlab 语言里，取得绝对值的函数是abs，可以计算整数、实数，以及复数。
如以组合语言撰写，应有可能以三行指令在暂存器内完成绝对值的判断与转换算法，以下例子是x86 结构上的32 位元暂存器，采英特尔语法。
cdqxor eax, edxsub eax, edx
cdq 指令将带号位元（sign bit）的 eax 转成edx。如果 eax 是非负值，那 edx 变成0，接下来的两个指令会没有影响，eax 将不变。如果 eax 是负数，那么 edx 会变成0xFFFFFFFF ，或是-1。接下来的两个指令会变成倒转的二补数，并从eax暂存器中取得负数的绝对值。