21xrx.com
2024-11-25 10:21:50 Monday
登录
文章检索 我的文章 写文章
如何将C++中的十六进制转换为十进制?
2023-06-23 00:35:41 深夜i     --     --
C++ 十六进制 十进制 转换

在C++编程中,经常会遇到需要将十六进制转换为十进制的需求。这种转换可以帮助程序员更好地进行数据计算与处理。本篇文章就为大家介绍如何将C++中的十六进制转换为十进制。

在C++中,可以使用stoi()函数将十六进制字符串转换为整数类型。具体代码如下:


#include <iostream>

#include <string>

int main()

{

  std::string hex_str = "A8B1";

  int dec_num = std::stoi(hex_str, nullptr, 16); // hex_str为要转换的十六进制字符串

  std::cout << "The decimal number is: " << dec_num << std::endl;

  return 0;

}

上述代码首先声明了一个字符串变量hex_str来存储要转换的十六进制数。然后,调用了C++标准库中的stoi()函数,实现将hex_str字符串转换为整形变量dec_num。注意,在stoi()函数中,第三个参数16表示将hex_str作为十六进制字符串进行解析。

通过运行上述代码,可以得到如下输出:


The decimal number is: 43249

即将十六进制数A8B1转换为十进制数43249。

当然,如果想要一次性将多个十六进制字符串转换为十进制数,可以使用循环结构,对每个字符串都调用一遍stoi()函数,一一进行转换。例如:


#include <iostream>

#include <string>

#include <vector>

int main()

{

  std::vector<std::string> hex_vect = "3CD";

  std::vector<int> dec_vect;

  for (std::string hex_str : hex_vect)

  {

    int dec_num = std::stoi(hex_str, nullptr, 16);

    dec_vect.push_back(dec_num);

  }

  for (int dec_num : dec_vect)

  

    std::cout << dec_num << " ";

  

  std::cout << std::endl;

  return 0;

}

上述代码首先使用了std::vector容器,将要转换的十六进制字符串存储起来。然后,使用循环结构,对每个字符串都调用了一遍stoi()函数,将其转换为十进制数,并将结果存储到另外一个std::vector变量dec_vect中。最后,再次使用循环结构,将dec_vect中存储的所有十进制数输出到控制台。

通过运行上述代码,可以得到如下输出:


43249 1005 3877

即将三个十六进制数A8B1、3CD、F25依次转换为十进制数43249、1005、3877。

总之,将C++中的十六进制转换为十进制非常简单,只需要调用std::stoi()函数,设置其第三个参数为16即可。如果需要将多个十六进制字符串一次性转换为十进制数,可以使用循环结构和std::vector容器,将结果逐个存储并输出。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复