c++標準庫對於各個型別的最大值最小值climit

2020-08-10 11:37:46

速查表:
char -128 ~ +127 (1 Byte)

unsigned char 0 ~ 255 (1 Bytes)

short -32767 ~ + 32768 (2 Bytes)

unsigned short 0 ~ 65536 (2 Bytes)

int -2147483648 ~ +2147483647 (4 Bytes)

unsigned int 0 ~ 4294967295 (4 Bytes)

long == int

long long -9223372036854775808 ~ +9223372036854775807 (8 Bytes)

unsigned long long 0 ~ 18446744073709551615 (8 Bytes)

爲方便起見,把先把表格放在了開頭,接下來是探究標準庫各個型別的數據大小,不同編譯器也有一定的差別。前提知識:#include這個原始檔中有關於型別數據大小的定義.
程式碼如下:

#include<iostream>
#include<climits>
using namespace std;
int main()
{
 cout<<"char型別的位元組數(byte):"<<sizeof(char)<<"位元組"<<endl;  //  1byte==8bit 
 cout<<"char型別的最大值和最小值:"<<CHAR_MAX<<"\t"<<CHAR_MIN<<endl;
 cout<<"signed char型別的最大值和最小值:"<<SCHAR_MAX<<"\t"<<SCHAR_MIN<<endl;
 cout<<"unsigned char型別的最大值(2^8-1)和最小值:"<<UCHAR_MAX<<"\t"<<0<<endl;
 cout<<"short型別的最大值和最小值及位元組數:"<<SHRT_MAX<<"\t"<<SHRT_MIN<<"\t"<<sizeof(short)<<"位元組"<<endl;
 cout<<"unsigned short型別的最大值和最小值及位元組數:"<<USHRT_MAX<<"\t"<<0<<endl;
 cout<<"int型別的最大值和最小值及位元組數:"<<INT_MAX<<"\t"<<INT_MIN<<"\t"<<sizeof(int)<<"位元組"<<endl;
 cout<<"unsigned int型別的最大值和最小值:"<<UINT_MAX<<"\t"<<0<<endl;
 cout<<"long型別的最大值和最小值及位元組數:"<<LONG_MAX<<"\t"<<LONG_MIN<<'\t'<<sizeof(long)<<"位元組"<<endl;
 cout<<"unsigned long型別的最大值和最小值:"<<ULONG_MAX<<"\t"<<0<<endl;
 cout<<"long long型別的最大值和最小值及位元組數:"<<LLONG_MAX<<"\t"<<LLONG_MIN<<"\t"<<sizeof(long long)<<"位元組"<<endl;
 cout<<"unsigned long long型別的最大值和最小值:"<<ULLONG_MAX<<"\t"<<0<<endl;
 cout<<3.4E+38;
}

眼見爲實,編譯結果如圖:
在这里插入图片描述
這是筆者計算機上的執行結果圖。
直接從結果來看,看來上面的數據表格是沒有問題的。