ในบางกรณี เราจำเป็นต้องใช้ค่าต่ำสุดหรือสูงสุดของประเภทข้อมูลเฉพาะในปัญหาที่แตกต่างกัน มันยากมากที่จะจำค่านั้น ด้วยเหตุผลดังกล่าว C++ จึงมีมาโครบางตัวที่ใช้เพื่อแสดงช่วงต่ำสุดและสูงสุดของประเภทข้อมูลบางประเภท บางตัวไม่มีมาโครเพราะไม่ได้ลงนาม ดังนั้นค่าต่ำสุดจะเป็น 0
ประเภทข้อมูล | ช่วง | มาโครสำหรับค่าต่ำสุด | มาโครสำหรับค่าสูงสุด |
---|---|---|---|
แผนภูมิ | -128 ถึง +127 | CHAR_MIN | CHAR_MAX |
ตัวย่อ | -128 ถึง +127 | SCHAR_MIN | SCHAR_MAX |
แผนภูมิที่ไม่ได้ลงนาม | 0 ถึง 255 | ---- | UCHAR_MAX |
int สั้น | -32768 ถึง +32767 | SHRT_MIN | SHRT_MAX |
unsigned short int | 0 ถึง 65535 | ---- | USHRT_MAX |
int | -2147483648 ถึง+2147483647 | INT_MIN | INT_MAX |
ไม่ได้ลงชื่อ | 0 ถึง 4294967295 | ---- | INT_MAX |
ยาว | -2147483648 ถึง+2147483647 | LONG_MIN | LONG_MAX |
ไม่มีเครื่องหมาย long int | 0 to18446744073709551615 | ---- | ULONG_MAX |
ยาว ยาว int | -9223372036854775808 to+9223372036854775807 | LLONG_MIN | LLONG_MAX |
ไม่มีเครื่องหมาย long long int | 0 to18446744073709551615 | ---- | ULLONG_MAX |
ลอย | 1.17549e-38 ถึง 3.40282e+38 | FLT_MIN | FLT_MAX |
ลอย(เชิงลบ) | -1.17549e-38 to-3.40282e+38 | -FLT_MIN | -FLT_MAX |
ดับเบิ้ล | 2.22507e-308 to1.79769e+308 | DBL_MIN | DBL_MAX |
ดับเบิ้ล(ลบ) | -2.22507e-308 to-1.79769e+308 | -DBL_MIN | -DBL_MAX |
เราสามารถเห็นโปรแกรมง่ายๆ ในการพิมพ์ช่วงของข้อมูลบางประเภทของ C++
ตัวอย่าง
#include<iostream> #include<limits.h> // for int,char macros #include<float.h> // for float,double macros using namespace std; int main() { cout << "char Range: (" << CHAR_MIN <<", " <<CHAR_MAX << ")\n"; cout << "short char Range: (" << SCHAR_MIN <<", " <<SCHAR_MAX << ")\n"; cout << "unsigned char Range: (" << 0 <<", " <<UCHAR_MAX << ")\n"; cout << "short int Range: (" << SHRT_MIN <<", " <<SHRT_MAX << ")\n"; cout << "unsigned short int Range: (" << 0 <<", " <<USHRT_MAX << ")\n"; cout << "int Range: (" << INT_MIN <<", " <<INT_MAX << ")\n"; cout << "unsigned int Range: (" << 0 <<", " <<UINT_MAX << ")\n"; cout << "long int Range: (" << LONG_MIN <<", " <<LONG_MAX << ")\n"; cout << "unsigned long int Range: (" << 0 <<", " <<ULONG_MAX << ")\n"; cout << "long long int Range: (" << LLONG_MIN <<", " <<LLONG_MAX << ")\n"; cout << "unsigned long long int Range: (" << 0 <<", " <<ULLONG_MAX << ")\n"; cout << "float Range: (" << FLT_MIN <<", " <<FLT_MAX << ")\n"; cout << "float(negative) Range: (" << -FLT_MIN <<", " <<-FLT_MAX << ")\n"; cout << "double Range: (" << DBL_MIN <<", " <<DBL_MAX << ")\n"; cout << "double(negative) Range: (" << -DBL_MIN <<", " <<-DBL_MAX << ")"; }
ผลลัพธ์
char Range: (-128, 127) short char Range: (-128, 127) unsigned char Range: (0, 255) short int Range: (-32768, 32767) unsigned short int Range: (0, 65535) int Range: (-2147483648, 2147483647) unsigned int Range: (0, 4294967295) long int Range: (-2147483648, 2147483647) unsigned long int Range: (0, 4294967295) long long int Range: (-9223372036854775808, 9223372036854775807) unsigned long long int Range: (0, 18446744073709551615) float Range: (1.17549e-038, 3.40282e+038) float(negative) Range: (-1.17549e-038, -3.40282e+038) double Range: (2.22507e-308, 1.79769e+308) double(negative) Range: (-2.22507e-308, -1.79769e+308)