21xrx.com
2025-03-29 05:57:05 Saturday
文章检索 我的文章 写文章
如何将C++中的十六进制转换为十进制?
2023-06-23 00:35:41 深夜i     15     0
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容器,将结果逐个存储并输出。

  
  

评论区

请求出错了