abs, labs, llabs, imaxabs
من cppreference.com
معرفة في ملف <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|) (دالة) |
(C99)(C99)(C99) |
computes the magnitude of a complex number (دالة) |
مقالة مرجع C++ عن abs
|