কিছু প্রোগ্রামিং সমস্যায় নির্দিষ্ট ডেটা টাইপের ন্যূনতম বা সর্বোচ্চ মান ব্যবহার করতে হয়। সেগুলো মনে রাখা কঠিন। এই কারণে C++-এ কিছু ম্যাক্রো রয়েছে যা ডেটা টাইপের মিন এবং ম্যাক্স রেঞ্জ নির্দেশ করে। অনসাইনড টাইপের জন্য মিন ম্যাক্রো নেই কারণ সেগুলোর ন্যূনতম মান ০।
| Data Type | Range | Macro for min value | Macro for max value |
|---|---|---|---|
| char | -128 to +127 | CHAR_MIN | CHAR_MAX |
| signed char | -128 to +127 | SCHAR_MIN | SCHAR_MAX |
| unsigned char | 0 to 255 | ----- | UCHAR_MAX |
| short int | -32768 to +32767 | SHRT_MIN | SHRT_MAX |
| unsigned short int | 0 to 65535 | ----- | USHRT_MAX |
| int | -2147483648 to +2147483647 | INT_MIN | INT_MAX |
| unsigned int | 0 to 4294967295 | ----- | UINT_MAX |
| long int | -2147483648 to +2147483647 | LONG_MIN | LONG_MAX |
| unsigned long int | 0 to 4294967295 (32-bit) / 18446744073709551615 (64-bit) | ----- | ULONG_MAX |
| long long int | -9223372036854775808 to +9223372036854775807 | LLONG_MIN | LLONG_MAX |
| unsigned long long int | 0 to 18446744073709551615 | ----- | ULLONG_MAX |
| float | 1.17549e-38 to 3.40282e+38 | FLT_MIN | FLT_MAX |
| float (negative) | -3.40282e+38 to -1.17549e-38 | -FLT_MAX | -FLT_MIN |
| double | 2.22507e-308 to 1.79769e+308 | DBL_MIN | DBL_MAX |
| double (negative) | -1.79769e+308 to -2.22507e-308 | -DBL_MAX | -DBL_MIN |
নিচে কিছু ডেটা টাইপের রেঞ্জ প্রিন্ট করার একটি সাধারণ প্রোগ্রাম দেওয়া হলো।
উদাহরণ
#include <iostream>
#include <climits> // int, char ম্যাক্রোর জন্য
#include <cfloat> // float, double ম্যাক্রোর জন্য
using namespace std;
int main() {
cout << "char Range: (" << CHAR_MIN << ", " << CHAR_MAX << ")\n";
cout << "signed 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_MAX << ", " << -FLT_MIN << ")\n";
cout << "double Range: (" << DBL_MIN << ", " << DBL_MAX << ")\n";
cout << "double (negative) Range: (" << -DBL_MAX << ", " << -DBL_MIN << ")";
return 0;
}
আউটপুট
char Range: (-128, 127) signed 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-38, 3.40282e+38) float (negative) Range: (-3.40282e+38, -1.17549e-38) double Range: (2.22507e-308, 1.79769e+308) double (negative) Range: (-1.79769e+308, -2.22507e-308)