21xrx.com
2024-12-22 21:16:54 Sunday
登录
文章检索 我的文章 写文章
C++编写16进制转10进制函数并编写主函数测试
2023-07-14 06:26:38 深夜i     --     --
C++ 16进制 10进制 函数 主函数测试

在计算机领域中,不同进制的操作非常常见。其中16进制(Hexadecimal)常用于表示二进制(Binary)数值。因此,在C++编程中,转换16进制数值至10进制(Decimal)是一项基本操作。

下面介绍如何编写一个16进制转10进制函数。

函数原型:

int hexToDecimal(string hexValue);

函数解释:

该函数接受一个字符串参数,即待转换的16进制数值,并返回一个整数值,即转换后的10进制值。

函数实现:

为了将16进制数值转换成10进制数值,在函数中需要进行如下操作:

首先,定义一个变量用于存储转换后的10进制值。

然后,从字符串的最后一位开始遍历,将每一位16进制数值转换成10进制数值。

最后,将每一位转换后的值按权重相加,得到最终结果。

int hexToDecimal(string hexValue) {

  int decimalValue = 0;

  int baseValue = 1;

  for (int i = hexValue.length() - 1; i >= 0; i--) {

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

      decimalValue += (hexValue[i] - 48) * baseValue;

      baseValue *= 16;

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

      decimalValue += (hexValue[i] - 55) * baseValue;

      baseValue *= 16;

    }

  }

  return decimalValue;

}

在上述代码中,首先定义变量decimalValue用于存储转换后的10进制值,变量baseValue用于表示权重。

然后,从字符串的最后一位开始遍历,如果该位是0-9之间的数字,则其对应的10进制数值为该数字减去48,否则为该字母的ASCII码值减去55。每个数位的权重依次乘以16的n次方,n为当前数位的下标。

最后,将每个数位转换后的值相加,得到最终结果。以下为示例代码:

int main() {

  string hexValue = "2A";

  int decimalValue = hexToDecimal(hexValue);

  cout << "The decimal value of " << hexValue << " is " << decimalValue << endl;

  return 0;

}

在主函数中,首先定义一个字符串变量hexValue,用于存储待转换的16进制数值。然后,调用上述函数hexToDecimal,将hexValue作为参数传递给该函数,并将结果存储在整型变量decimalValue中。

最后,输出转换结果。输出结果为:The decimal value of 2A is 42.

以上就是如何编写16进制转10进制函数并编写主函数测试的方法。

  
  

评论区

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