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