Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Phạm vi kiểu dữ liệu và macro của chúng trong C++


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 +127CHAR_MINCHAR_MAX
short char-128 đến +127SCHAR_MINSCHAR_MAX
unsigned char0 đến 255-----UCHAR_MAX
short int-32768 đến +32767SHRT_MINSHRT_MAX
unsigned short int0 đến 65535-----USHRT_MAX
int-2147483648 đến +2147483647INT_MININT_MAX
unsigned int0 đến 4294967295-----UINT_MAX
long int-2147483648 đến +2147483647LONG_MINLONG_MAX
unsigned long int0 đến 18446744073709551615-----ULONG_MAX
long long int-9223372036854775808 đến +9223372036854775807LLONG_MINLLONG_MAX
unsigned long long int0 đến 18446744073709551615-----ULLONG_MAX
float1.17549e-38 đến 3.40282e+38FLT_MINFLT_MAX
float(âm)-1.17549e-38 đến -3.40282e+38-FLT_MIN-FLT_MAX
double2.22507e-308 đến 1.79769e+308DBL_MINDBL_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)