📜  c++ 整数到整数 - C++ (1)

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

C++ 整数到整数

在C++中,整数类型为 int,可以表示数值范围为 -2,147,483,6482,147,483,647 的整数。当超出这个范围时,可以使用较大的整数类型,如 long long

转换整数类型

在C++中,可以使用下面的语法将一个类型的整数值转换为另一个类型的整数值:

type_cast<target_type>(value)

其中,type_cast 是类型转换运算符,target_type 是转换后的目标类型,value 是要转换的值。

示例
int i = 42;
double d = static_cast<double>(i);
截断和溢出

当将一个超出目标类型范围的值转换为目标类型时,会发生截断或溢出。

对于整数类型,截断会导致丢失超出目标类型范围的部分,而溢出会导致不确定的结果,可能会导致程序崩溃。

示例
int i = 2147483647; // 最大的int值
short s = static_cast<short>(i); // 截断
cout << s << endl; // 输出 -1

int j = 2147483648; // 超出int的范围
short t = static_cast<short>(j); // 溢出
cout << t << endl; // 不确定的结果
进制转换

常见的进制转换包括二进制、八进制、十进制和十六进制。在C++中,可以使用以下格式来表示不同进制的整数值:

  • 二进制:前缀为 0b0B,后面跟着由 01 组成的数值。
  • 八进制:前缀为 0,后面跟着由 07 的数值。
  • 十进制:由 09 的数值组成。
  • 十六进制:前缀为 0x0X,后面跟着由 09AF 的数值。

在使用输入输出流时,可以使用ios类库中的方法来进行进制转换。

示例
int i = 42;

// 十六进制输出
cout << hex << i << endl; // 2a

// 八进制输出
cout << oct << i << endl; // 52

// 二进制输出
bitset<8> bits(i);
cout << bits << endl; // 00101010
总结

在C++中,整数类型可以表示不同范围的整数值。当需要将一个整数类型转换为另一个整数类型时,可以使用类型转换运算符。在进行进制转换时,可以使用不同进制的前缀和输入输出流的方法。