Trong một số trường hợp, cần dùng giá trị nhỏ nhất hoặc lớn nhất của một kiểu dữ liệu cụ thể. Việc nhớ các giá trị này rất khó. Do đó C++ cung cấp các macro để biểu thị phạm vi min/max của các kiểu. Một số kiểu không có macro min vì là unsigned, nên min = 0.
| Kiểu dữ liệu | Phạm vi | Macro giá trị nhỏ nhất | Macro giá trị lớn nhất |
|---|---|---|---|
| char | -128 đến +127 | CHAR_MIN | CHAR_MAX |
| short char | -128 đến +127 | SCHAR_MIN | SCHAR_MAX |
| unsigned char | 0 đến 255 | ----- | UCHAR_MAX |
| short int | -32768 đến +32767 | SHRT_MIN | SHRT_MAX |
| unsigned short int | 0 đến 65535 | ----- | USHRT_MAX |
| int | -2147483648 đến +2147483647 | INT_MIN | INT_MAX |
| unsigned int | 0 đến 4294967295 | ----- | UINT_MAX |
| long int | -2147483648 đến +2147483647 | LONG_MIN | LONG_MAX |
| unsigned long int | 0 đến 18446744073709551615 | ----- | ULONG_MAX |
| long long int | -9223372036854775808 đến +9223372036854775807 | LLONG_MIN | LLONG_MAX |
| unsigned long long int | 0 đến 18446744073709551615 | ----- | ULLONG_MAX |
| float | 1.17549e-38 đến 3.40282e+38 | FLT_MIN | FLT_MAX |
| float(âm) | -1.17549e-38 đến -3.40282e+38 | -FLT_MIN | -FLT_MAX |
| double | 2.22507e-308 đến 1.79769e+308 | DBL_MIN | DBL_MAX |
| double(âm) | -2.22507e-308 đến -1.79769e+308 | -DBL_MIN | -DBL_MAX |
Chương trình in phạm vi một số kiểu dữ liệu C++:
Ví dụ
#include <iostream>
#include <limits.h> // macro int, char
#include <float.h> // macro float, double
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 << ")";
}
Kết quả
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)