在 C++ 中,整型(Integer)是一种基本的数据类型,用于表示整数值。整型在计算机编程中非常常见,用于存储和操作整数数据。
C++提供了几种整型数据类型,每种类型有不同的大小和范围。以下是C++中常用的整型数据类型:
C++还提供了一些无符号(unsigned)整型数据类型,这些类型只能表示非负数。例如,可以使用unsigned int表示非负整数。
整型数据类型可以进行常见的数学运算,如加法、减法、乘法和除法。此外,还可以使用比较运算符(如等于、大于、小于)对整数进行比较。
需要注意的是,在使用整型数据类型时,要确保选择适当的类型以满足数据的范围和精度要求,以避免数据溢出或精度丢失的问题。
char ch = 'a';
short num = 10;
int num = 100;
long num = 1000000L;
long long num = 100000000000LL;
此外,C++还提供了每个整型类型的无符号版本,以表示非负数。例如,可以使用unsigned int表示非负整数。无符号整型类型的范围是0到最大正整数的两倍减一。
#include
#include
#include
int main() {
using namespace std;
int n_int = INT_MAX;
short n_short = SHRT_MAX;
long n_long = LONG_MAX;
long long n_long_long = LLONG_MAX;
// 写出每个整型的字节数
cout << "int is " << sizeof n_int << " bytes." << endl;
cout << "short is " << sizeof n_short << " bytes." << endl;
cout << "long is " << sizeof n_long << " bytes." << endl;
cout << "long long is " << sizeof n_long_long << " bytes." << endl;
// 输出每个整型的最大值
cout << "maximum values : " << endl;
cout << "int : " << n_int << "\n"
<< "short : " << n_short << "\n"
<< "long : " << n_long << "\n"
<< "long long : " << n_long_long << "\n"
<< endl;
// 查看每个整型的位数
cout << "int : " << CHAR_BIT * sizeof n_int << " bits." << "\n"
<< "short : " << CHAR_BIT * sizeof n_short << " bits." << "\n"
<< "long : " << CHAR_BIT * sizeof n_long << " bits." << "\n"
<< "long long : " << CHAR_BIT * sizeof n_long_long << " bits." << "\n"
<< endl;
return 0;
}
输出结果为:
int is 4 bytes.
short is 2 bytes.
long is 4 bytes.
long long is 8 bytes.
maximum values :
int : 2147483647
short : 32767
long : 2147483647
long long : 9223372036854775807
int : 32 bits.
short : 16 bits.
long : 32 bits.
long long : 64 bits.
D:\C++CodeProject\Project1\x64\Debug\Project1.exe (进程 69212)已退出,代码为 0。
按任意键关闭此窗口. . .
要查看每个整型的位数,可以使用头文件中的numeric_limits模板类。该类提供了关于各种整型的信息,包括位数。
#include
#include
#include
int main() {
using namespace std;
cout << "int is " << CHAR_BIT * sizeof(int) << " bits." << endl;
cout << "short is " << CHAR_BIT * sizeof(short) << " bits." << endl;
cout << "long is " << CHAR_BIT * sizeof(long) << " bits." << endl;
cout << "long long is " << CHAR_BIT * sizeof(long long) << " bits." << endl;
return 0;
}
运行该程序,将输出每个整型的位数(以比特为单位)。CHAR_BIT是头文件中定义的常量,表示每个字节中的位数。
请注意,上述代码假设一个字节包含8位。这是大多数平台上的常见情况,但也有一些特殊的平台可能使用不同的位数来表示一个字节。
sizeof是一个C++运算符,用于获取数据类型或变量的大小(以字节为单位)。它的语法如下:
sizeof (type)
sizeof (expression)
其中,type可以是任何有效的数据类型,而expression可以是一个变量、一个数据类型或一个表达式。
sizeof运算符返回一个size_t类型的值,表示其操作数所占用的内存大小。需要注意的是,sizeof的结果是在编译时确定的,它并不会对运行时的表达式进行求值。
以下是一些示例用法:
sizeof(int) // 获取int类型的大小
sizeof(float) // 获取float类型的大小
int num;
sizeof(num) // 获取变量num的大小
sizeof(char) // 获取char类型的大小
sizeof('a') // 获取字符字面量'a'的大小
sizeof(int*) // 获取指针类型的大小
sizeof(num + 5) // 获取表达式num + 5的大小
需要注意的是,sizeof返回的大小是以字节为单位的,不同的数据类型可能在不同的系统和编译器上有不同的大小。可以使用头文件中的std::size_t类型来声明sizeof的结果。
使用sizeof运算符可以帮助程序员了解数据类型和变量所占用的内存大小,在内存管理和优化方面提供有用的信息。
头文件中定义了C++标准库中有关数值类型极限的常量和函数。这些常量和函数使得程序能够在编译时获得不同数值类型的范围、精度和其他特性的信息。下面是一些常用的头文件中定义的常量和函数:
数值类型极限常量:
特殊值常量:
数值属性常量:
其他常量和函数:
这些常量和函数使得程序员可以在编译时获取不同数值类型的相关信息,包括取值范围、精度、特殊值以及数值属性等。这些信息对于确保正确处理数值、进行数值计算以及编写可移植的代码非常有用。