C# · 12月 19, 2021

番外:C++数据类型的极值问题(精简版)

数据类型,是C++里的一种容器,如果能知道每种容器的确切容积,会更方便地切换使用:

本文全部的测试内容,都是在以 64位:Windows7:Dev5.9.2 运行的结果:

1 先看结论 

char 最大值:127

char 最小值:-128

———————————-

int 最大值:2147483647

int 最小值:-2147483648

long long 最大值:9223372036854775807

long long 最小值:-9223372036854775808

———————————-

double 最大值:1.79769e+308

double 最小值:2.22507e-308

2 再看分析

2.1 计算机进行数据表示和传输的基础单位是比特: bit :是一个二进制位,只能表示0或者1

2.2 计算机进行数据存储的基础单位是“字节”:Byte:一个字节由8个bit(二进制位)组成

2.3 每种数据类型,根据实际的用途,设置了特定的空间,我们常用的如下表所示:

类型

占用空间

范围

字节(Byte)

位(bit)

char

1

8

[-128,127]

int

4

32

[-2147483648,2147483647]

long long

8

64

[-9223372036854775808,9223372036854775807]

double

8

64

[2.22507e-308,1.79769e+308]

2.4 信息学奥赛中,还有一个常用的类型是布尔:bool,有兴趣的同学可以自行百度。

3 上程序(可复制测试):

#include

#include

using namespace std;

int main()

{

cout << "char 最大值:" << CHAR_MAX << 'n';

cout << "char 最小值:" << CHAR_MIN << 'n';

cout << "———————————-"<<'n';

cout << "int 最大值:" << INT_MAX << 'n';

cout << "int 最小值:" << INT_MIN << 'n';

cout << "long long 最大值:" << LONG_LONG_MAX << 'n';

cout << "long long 最小值:" << LONG_LONG_MIN << 'n';

cout << "———————————-"<<'n';

cout << "double 最大值:" << DBL_MAX << 'n';

cout << "double 最小值:" << DBL_MIN << 'n';

return 0;

}