Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ช่วงข้อมูลและ Macro ใน C++

บางกรณีต้องใช้ค่าต่ำสุดหรือสูงสุดของชนิดข้อมูลเฉพาะในโจทย์ต่างๆ จำค่าเหล่านั้นยาก C++ จึงมี macro แทนช่วงค่าต่ำสุดและสูงสุด บางอย่างไม่มี macro เพราะเป็น unsigned ค่าต่ำสุดคือ 0

Data Type Range Macro for min value Macro for max value
char-128 to +127CHAR_MINCHAR_MAX
short char-128 to +127SCHAR_MINSCHAR_MAX
unsigned char0 to 255-----UCHAR_MAX
short int-32768 to +32767SHRT_MINSHRT_MAX
unsigned short int0 to 65535-----USHRT_MAX
int-2147483648 to +2147483647INT_MININT_MAX
unsigned int0 to 4294967295-----UINT_MAX
long int-2147483648 to +2147483647LONG_MINLONG_MAX
unsigned long int0 to 18446744073709551615-----ULONG_MAX
long long int-9223372036854775808 to +9223372036854775807LLONG_MINLLONG_MAX
unsigned long long int0 to 18446744073709551615-----ULLONG_MAX
float1.17549e-38 to 3.40282e+38FLT_MINFLT_MAX
float(negative)-1.17549e-38 to -3.40282e+38-FLT_MIN-FLT_MAX
double2.22507e-308 to 1.79769e+308DBL_MINDBL_MAX
double(negative)-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)