نطاقات
المتغيرات
أفعال

abs, labs, llabs, imaxabs

من cppreference.com
< c | numeric | math
 
 
 
دوال رياضية شائعة
الدوال
عمليات بسيطة
(C99)
(C99)
(C99)
(C99)
(C99)
(C99)(C99)(C99)
دوال أسية ولوغارتمية ثابتة الأساس
(C99)
(C99)
(C99)
(C99)
دوال أسية وجذور
(C99)
(C99)
دوال حساب المثلثات والدول الزائدية
(C99)
(C99)
(C99)
دالة الخطأ ودالة غاوس
(C99)
(C99)
(C99)
(C99)
إيجاد أقرب عدد صحيح لفاصلة عائمة (float)
(C99)(C99)(C99)
(C99)
(C99)(C99)(C99)
دوال التعديل على الفاصلة العائمة (float)
(C99)(C99)
(C99)
(C99)
التصنيف والمقارنة
(C99)
(C99)
(C99)
ثوابت ماكرو
 
<tbody> </tbody>
معرفة في ملف <stdlib.h>
int abs( int n );
long labs( long n );
long long llabs( long long n );
(منذ C99)
معرفة في ملف <inttypes.h>
intmax_t imaxabs( intmax_t n );
(منذ C99)

تحسب القيمة المطلقة لعدد صحيح. السلوك غير معرف عندما لا يمكن تمثيل الناتج بالنوع المُرجع.

المعطيات

n - قيمة لعدد صحيح

القيمة المُرجعة

القيمة المطلقة لـ ‎n‎ (أي ‎|n|‎) بشرط إمكانية تمثيلها.

ملحوظات

في الأنظمة المتممة ثنائيا (Two's complement), القيمة المطلقة لأكثر الأعداد سالبية تكون خارج النطاق الممكن تمثيله. فمثلا لنوع int حجمه 32 بت ومتمم ثنائيا, تكون قيمة INT_MIN بـ ‎-2147483648 بينما القيمة المطلقة هي 2147483648 وهذه تفوق INT_MAX التي تساوي 2147483647.

مثال

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

int main(void)
{
    printf("abs(+3) = %d\n", abs(+3));
    printf("abs(-3) = %d\n", abs(-3));

//  printf("%+d\n", abs(INT_MIN)); // undefined behavior on 2's complement systems
}

الخرج:

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

أنظر أيضا

(C99)(C99)
تحسب القيمة المطلقة لعدد من نوع فاصلة عائمة (float)‏ (|x|)
(دالة) [edit]
(C99)(C99)(C99)
computes the magnitude of a complex number
(دالة) [edit]