C++程序:将int类型变量转换为long


C++ 是一种静态类型语言,因此所有变量都需要预先声明数据类型。数据类型用于表示变量中包含的值的类型。在 C++ 中,用于表示数值的变量包括 int、long、float 和 double。int 和 long 用于表示整数值,而 float 和 double 用于表示小数值。int 和 long 都包含整数值,区别在于 int 的大小为 4 个字节,而 long 的大小为 8 个字节。

将 int 转换为 long 可以通过多种不同的方式实现,这里我们只讨论两种。第一种是隐式转换,第二种是显式转换。显式类型转换需要在代码中提及结果数据类型,而隐式类型转换由编译器本身完成。显式类型转换还可以通过两种方式完成,稍后将进行描述。我们先介绍隐式转换。

语法

int 类型变量到 long 的隐式转换:

int a;
long b = a;

隐式转换完全由编译器处理,程序员无需为转换付出任何额外努力。只需要将源变量赋值给目标变量。

算法

  • 将输入存储在一个 int 变量中,例如 a。
  • 将 int 变量赋值给一个 long 变量。如果 long 变量为 b,则将 a 赋值给 b。
  • 打印值。

示例

#include <iostream> using namespace std; long solve(int var2) { return var2; } int main() { long var1; int var2 = 4103; var1 = solve(var2); cout<< "The value of var1 is: "<< var1 <<endl; cout<< "The size of var1 is: " << sizeof(var1) <<endl; cout<< "The size of var2 is: " << sizeof(var2) <<endl; return 0; }

输出

The value of var1 is: 4103
The size of var1 is: 8
The size of var2 is: 4

如示例所示,变量 var1 的类型为 int,而变量 var2 的类型为 long。值 4103 用于初始化变量 var2,然后将其赋值给 var1。很明显,编译器执行了隐式类型转换,并将该值作为整数保存在变量 var1 中。输出中还显示了变量的大小以检查转换,但这仅仅是为了演示目的,不需要每次都这样做。在 C++ 中,有两种方法可以执行显式类型转换:使用强制转换运算符和在赋值时明确声明结果变量的数据类型。

使用强制转换运算符

在 C++ 中,有四种不同的强制转换运算符可用。本文只使用了 static_cast 运算符。

语法

int a;
long b = static_cast<long> (a);

算法

  • 将输入存储在一个 int 变量中,例如 a。
  • 使用 static_cast 运算符将 int 变量赋值给 long 变量 (例如 b)。
  • 打印值。

示例

#include <iostream> using namespace std; long solve(int var2) { return static_cast<long> (var2); } int main() { long var1; int var2 = 257; var1 = solve(var2); cout<< "The value of var1 is: "<< var1 <<endl; cout<< "The size of var1 is: " << sizeof(var1) <<endl; cout<< "The size of var2 is: " << sizeof(var2) <<endl; return 0; }

输出

The value of var1 is: 257
The size of var1 is: 8
The size of var2 is: 4

结果与前面尝试的代码片段相同。显式类型转换完成了相同的功能,不同之处在于用户现在需要指定转换方法。

赋值时声明数据类型

与之前的方法类似,在转换时,我们还在右侧的源变量之前放置结果数据类型。在这种情况下不需要额外的运算符。

语法

int a;
long b = (long) a;

算法

  • 将输入存储在一个 int 变量中,例如 a。
  • 在赋值时声明结果数据类型将 int 变量赋值给 long 变量 (例如 b)。
  • 打印值。

示例

#include <iostream> using namespace std; long solve(int var2) { return (long) var2; } int main() { long var1; int var2 = 37857; var1 = solve(var2); cout<< "The value of var1 is: "<< var1 <<endl; cout<< "The size of var1 is: " << sizeof(var1) <<endl; cout<< "The size of var2 is: " << sizeof(var2) <<endl; return 0; }

输出

The value of var1 is: 37857
The size of var1 is: 8
The size of var2 is: 4

结论

由于不同的数据类型提供了操纵相同类型数据的各种表示和方法,因此它们之间的转换在 C++ 和其他计算机语言中非常常见。为了在 long 和 int 之间进行转换,我们通常使用两种类型的转换,称为隐式和显式类型转换。当需要 int 类型数据进行更大更复杂的计算时,这些转换是有意义的。

更新于:2022年10月19日

9K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告