ในบทช่วยสอนนี้ เราจะพูดถึงชนิดข้อมูลจำนวนเต็มขยาย (Extended Integral Types) ใน C/C++
ชนิดข้อมูลใน C ถูกกำหนดอย่างหลวมหลาย ค่าขอบเขตจะเปลี่ยนแปลงไปตามคอมไพเลอร์เป็น 32 บิตหรือ 64 บิต เพื่อระบุช่วงค่าที่คอมไพเลอร์ควรใช้ในโปรแกรม เราใช้ intN_t
ตัวอย่างโค้ด
#include <iostream>
using namespace std;
int main() {
uint8_t i; // ระบุขนาด 8 บิต
i = 0;
cout << "Minimum value of i\t: " << (int)i << endl;
i = 255;
cout << "Maximum value of i\t: " << (int)i << endl;
// เกินขอบเขตที่กำหนดจะได้ค่าขยะ
i = 2436;
cout << "Beyond range value of i\t: " << (int)i << endl;
return 0;
}
เอาต์พุต
Minimum value of i : 0 Maximum value of i : 255 Beyond range value of i : 132
คำอธิบาย
uint8_tหมายถึง unsigned integer 8 บิต (ค่า 0 ถึง 255)- เมื่อกำหนดค่า 2436 ซึ่งเกิน 8 บิต จะเกิดการ truncate เหลือ 132 (2436 mod 256)
- ชนิดข้อมูลแบบคงที่ขนาด เช่น int8_t, int16_t, int32_t, int64_t และเวอร์ชัน unsigned ช่วยให้โค้ดพกพา (portable) ได้ดีขึ้น