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

Data Type Ranges และมาโครใน C++


ในบางกรณี เราจำเป็นต้องใช้ค่าต่ำสุดหรือสูงสุดของประเภทข้อมูลเฉพาะในปัญหาที่แตกต่างกัน มันยากมากที่จะจำค่านั้น ด้วยเหตุผลดังกล่าว 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)