ฟังก์ชันจำนวนเต็ม (Integer Functions) ในไลบรารี C คือฟังก์ชันที่คืนค่าจำนวนเต็มที่แน่นอน C รองรับเฉพาะค่าจำนวนเต็ม ฟังก์ชันนี้คืนค่าจำนวนเต็มที่ใกล้ที่สุดซึ่งน้อยกว่าหรือเท่ากับอาร์กิวเมนต์
ประเภทของฟังก์ชันจำนวนเต็ม:
int = abs (int n); long = labs (long n); long long = llabs (long long n);
โดยที่ n = ค่าจำนวนเต็ม
abs(), labs(), llabs() คืออะไร?
ถูกกำหนดในไฟล์หัวเรื่อง <cstdlib> (C Standard General Utilities Library) ให้ค่าจำนวนเต็มที่แน่นอนของค่าที่รับเข้ามาเป็นอาร์กิวเมนต์
ฟังก์ชัน abs()
ใน C อินพุตเป็นแบบ 'int' ใน C++ อินพุตเป็น 'int, long int หรือ long long int' ใน C เอาต์พุตเป็น 'int' ใน C++ เอาต์พุตมีชนิดข้อมูลเหมือนอินพุต
ฟังก์ชัน abs คำนวณค่าสัมบูรณ์ของค่าที่กำหนด คือค่าหลังจากนำเครื่องหมายลบและบวกออก หมายถึงจะคืนค่าบวกเสมอ
ตัวอย่าง:
- abs(-43) ให้ 43 เพราะเอาเครื่องหมายลบออก
- abs(12) ให้ 12 เพราะไม่มีเครื่องหมายที่ต้องเอาออก
ตัวอย่าง
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int a = abs(123);
int b = abs(-986);
cout << "abs(123) = " << a << "\n";
cout << "abs(-986) = " << b << "\n";
return 0;
}
ผลลัพธ์
abs(123) = 123 abs(-986) = 986
ฟังก์ชัน labs()
ทั้งอินพุตและเอาต์พุตเป็นแบบ long int เป็นรุ่น long int ของ abs() ทำงานเหมือนกันแต่รองรับค่าที่ยาวกว่า
ตัวอย่าง:
- labs(245349384932L) = 245349384932
- labs(-34235668687987) = 34235668687987
ตัวอย่าง
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
long int a = labs(437567342L);
long int b = labs(-8764523L);
cout << "labs(437567342L) = " << a << "\n";
cout << "labs(-8764523L) = " << b << "\n";
return 0;
}
ผลลัพธ์
labs(437567342L) = 437567342 labs(-8764523L) = 8764523
ฟังก์ชัน llabs()
ทั้งอินพุตและเอาต์พุตเป็นแบบ long long int เป็นรุ่น long long int ของ abs()
ตัวอย่าง
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
long long int a = llabs(9796546325253547656LL);
long long int b = llabs(-1423446557676111567LL);
cout << "llabs(9796546325253547656LL) = " << a << "\n";
cout << "llabs(-1423446557676111567LL) = " << b << "\n";
return 0;
}
ผลลัพธ์
llabs(9796546325253547656LL) = 9796546325253547656 llabs(-1423446557676111567LL) = 1423446557676111567