21xrx.com
2024-06-03 05:06:14 Monday
登录
文章检索 我的文章 写文章
C++实现十六进制转十进制的函数
2023-07-12 20:33:35 深夜i     --     --
C++ 十六进制 十进制 函数 实现

C++是一种编程语言,它被广泛应用于计算机科学和工程领域。当我们需要将十六进制数转换为十进制数时,我们可以使用C++编写一个函数。

十六进制数是由0到9以及A到F这16个数字组成的。在计算机中,通常表示为0x开头的数字,例如0x3F。而十进制数则是由0到9这10个数字组成的。

实现这个函数的方法是将十六进制数转换为十进制数。我们可以使用C++里的stoi函数将十六进制数转换为整数,然后用除法和余数操作将其转换为十进制数。

下面是一个示例代码:


#include <iostream>

#include <string>

using namespace std;

int hexToDec(string hex) {

  int decimal = 0;

  int base = 1;

  for(int i = hex.size() - 1; i >= 0; i--) {

    if(hex[i] >= '0' && hex[i] <= '9') {

      decimal += (hex[i] - 48) * base;

      base *= 16;

    } else if(hex[i] >= 'A' && hex[i] <= 'F') {

      decimal += (hex[i] - 55) * base;

      base *= 16;

    }

  }

  return decimal;

}

int main() {

  string hex = "3F";

  int dec = hexToDec(hex);

  cout << "Hex: " << hex << " Decimal: " << dec << endl;

  return 0;

}

在上面的代码中,我们定义了一个函数hexToDec,它接受一个十六进制字符串作为输入,并返回一个十进制整数。我们使用一个for循环来遍历字符串中的每个字符。如果遇到数字0到9,我们可以通过48减去字符来得到数字的值,然后乘以16的幂和基数,每次循环都将其添加到结果中。如果遇到字母A到F,我们通过55减去字符来得到数字的值,然后乘以16的幂和基数,每次循环都将其添加到结果中。

在主函数中,我们使用一个示例十六进制数“3F”调用hexToDec函数,然后将结果打印到控制台上。

这个函数可以方便地将十六进制数转换为十进制数,并且可以用于许多计算机科学和工程领域的应用。

  
  

评论区

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