21xrx.com
2024-12-22 21:41:35 Sunday
登录
文章检索 我的文章 写文章
"C++实现十六进制转十进制的代码"
2023-07-13 04:41:09 深夜i     --     --
C++ 十六进制 十进制 实现 代码

十六进制和十进制是计算机中两种常见的进制方式,它们在计算机编程中经常被使用。十六进制转十进制是十分常见的操作。使用C++可以实现很多操作,包括将十六进制转换为十进制。下面是C++实现十六进制转十进制的代码。

首先需要解释一下十六进制和十进制。十六进制是基于16个数字来表示数字,分别为0-9,以及A-F。在程序中,每个十六进制位数拥有四个二进制位。而十进制则是基于10个数字0-9来表示数字,该进制方式在程序中是最常见的。

下面是C++实现十六进制转十进制的代码:


#include <iostream>

#include <string>

int hexToDecimal(const std::string& hexStr)

{

  int decimalValue = 0;

  for (int i = 0, len = hexStr.length(); i < len; i++)

  {

    char ch = hexStr[i];

    if (ch >= '0' && ch <= '9')

    {

      decimalValue = decimalValue * 16 + (ch - '0');

    }

    else if (ch >= 'A' && ch <= 'F')

    {

      decimalValue = decimalValue * 16 + (ch - 'A' + 10);

    }

    else if (ch >= 'a' && ch <= 'f')

    {

      decimalValue = decimalValue * 16 + (ch - 'a' + 10);

    }

  }

  return decimalValue;

}

int main()

{

  std::string hexStr = "1A";

  int decimalValue = hexToDecimal(hexStr);

  std::cout << "The decimal value of " << hexStr << " is " << decimalValue << std::endl;

  return 0;

}

代码的主要部分是hexToDecimal()函数,它接受一个十六进制字符串,并返回它的十进制值。这个函数的实现过程包括:

1. 初始化decimalValue为0,用于存放计算后的十进制值。

2. 循环遍历十六进制字符串中的每个字符。

3. 对于每个字符,如果它是数字0到9,则将当前十六进制值乘以16,然后加上这个数字对应的十进制值(从0到9)。例如,对于十六进制字符串“1A”,第一个字符“1”是数字1,它对应的十进制值是1,第二个字符“A”是16,它对应的十进制值是10,则将1 * 16 + 10 赋值给decimalValue变量,从而得到26的十进制值。

4. 如果字符是字母,则将其转换为大写字母并减去'A'的ASCII码(10),将当前十六进制值乘以16,然后加上这个值所对应的十进制值。由于'A'到'F'这些字母对应的十进制数字是10到15,因此需要减去'A'的ASCII码。

5. 返回计算后的十进制值。

最后,将十六进制字符串传递给hexToDecimal()函数,以便获得计算后的十进制值。代码运行结果为:The decimal value of 1A is 26

因此,使用C++编写代码可以方便地进行十六进制转换为十进制的操作,将十六进制字符串传递给hexToDecimal函数即可得出计算后的十进制值。

  
  

评论区

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