📜  C ++中的数据类型范围及其宏(1)

📅  最后修改于: 2023-12-03 15:13:45.671000             🧑  作者: Mango

C++中的数据类型范围及其宏

C++是一种强类型语言,数据类型在编程中起着非常重要的作用。本文将介绍C++中的数据类型范围及其宏定义。

整数类型

在C++中,整数类型有以下几种:

| 数据类型 | 字节数 | 范围 | | --------- | ------ | ----------------------------------------- | | int | 4 | -2,147,483,648 ~ 2,147,483,647 | | short | 2 | -32,768 ~ 32,767 | | long | 4/8 | -2,147,483,648 ~ 2,147,483,647 / -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | | long long | 8 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |

其中,int为默认整数类型,通常占用4个字节,与机器的位数相关。

无符号整数类型

除了上述的整数类型,C++还提供了无符号整数类型,用于存储非负整数。无符号整数类型的范围为0到2^n-1,n为所占用的字节数*8。

| 数据类型 | 字节数 | 范围 | | ------------ | ------ | ---------------------- | | unsigned int | 4 | 0 ~ 4,294,967,295 | | unsigned short | 2 | 0 ~ 65,535 | | unsigned long | 4/8 | 0 ~ 4,294,967,295 / 0 ~ 18,446,744,073,709,551,615 | | unsigned long long | 8 | 0 ~ 18,446,744,073,709,551,615 |

无符号整数类型可以通过在数据类型前加上unsigned关键字来声明。

字符类型

字符类型在C++中表示单个字符,其数据类型为char。char类型通常占用1个字节,用于表示ASC码表中的字符。

| 数据类型 | 字节数 | 范围 | | -------- | ------ | ---- | | char | 1 | -128 ~ 127 |

char类型可以表示ASCII码表中的所有字符,包括数字、英文字母、特殊符号等。

浮点类型

浮点类型在C++中表示实数,包括单精度浮点数(float)和双精度浮点数(double)。

| 数据类型 | 字节数 | 范围 | | -------- | ------ | ---------------------------------------------- | | float | 4 | 精度为6位有效数字,范围约为3.4e-38 ~ 3.4e+38 | | double | 8 | 精度为15位有效数字,范围约为1.7e-308 ~ 1.7e+308 |

浮点数默认为双精度类型,要声明单精度浮点数,需要在数据类型前加上float关键字。

同时C++也提供了long double类型,它的范围更大,精度更高。但由于其占用空间较大,在实际使用中需谨慎选择。

布尔类型

布尔类型在C++中表示真(true)和假(false),用于逻辑运算。

| 数据类型 | 字节数 | 范围 | | -------- | ------ | ---- | | bool | 1 | true/false |

在实际使用中,可以使用布尔类型的数据来简化代码的书写,使代码更加直观。

C++基本数据类型的宏定义

在C++中,为了让程序员方便地编写代码,同时避免硬编码的麻烦,定义了一些与数据类型有关的宏。例如:

  • INT_MAX: 表示int类型的最大值
  • INT_MIN: 表示int类型的最小值
  • UINT_MAX: 表示unsigned int类型的最大值
  • LONG_MAX: 表示long类型的最大值
  • LONG_MIN: 表示long类型的最小值
  • ULONG_MAX: 表示unsigned long类型的最大值
  • CHAR_BIT: 表示char类型占用的位数
  • UCHAR_MAX: 表示unsigned char类型的最大值
  • SCHAR_MAX: 表示signed char类型的最大值
  • SCHAR_MIN: 表示signed char类型的最小值
  • SHRT_MAX: 表示short类型的最大值
  • SHRT_MIN: 表示short类型的最小值
  • USHRT_MAX: 表示unsigned short类型的最大值
  • DBL_MAX: 表示double类型的最大值
  • FLT_MAX: 表示float类型的最大值
  • LDBL_MAX: 表示long double类型的最大值

这些宏的定义在头文件<climits><cfloat>中,可以直接调用使用。

参考文献:

  1. C++ Reference.(链接
  2. C++ Data Types.(链接