21xrx.com
2025-03-24 19:45:25 Monday
文章检索 我的文章 写文章
C++实现十六进制转十进制
2023-07-01 18:35:19 深夜i     63     0
C++ 十六进制 十进制 转换 实现

在计算机科学中,常常需要进行不同进制之间的转换。十六进制和十进制是常见的两种进制。在C++中,可以使用以下代码实现十六进制转十进制的功能。

首先,需要读入一个十六进制数。这可以通过使用C++中的输入流和输出流来实现。以下是读入一个十六进制数的代码。

#include <iostream>
#include <string>
using namespace std;
int main()
  string hex_number;
  cout << "Enter a hexadecimal number: ";
  cin >> hex_number;
  return 0;

接下来,需要将十六进制数转换成十进制数。可以使用以下代码实现。

#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
  string hex_number;
  cout << "Enter a hexadecimal number: ";
  cin >> hex_number;
  int dec_number = 0;
  int base = 1;
  for (int i=hex_number.size()-1; i>=0; i--) {
    if (hex_number[i]>='0' && hex_number[i]<='9') {
      dec_number += (hex_number[i] - '0') * base;
    } else if (hex_number[i]>='A' && hex_number[i]<='F') {
      dec_number += (hex_number[i] - 'A' + 10) * base;
    }
    base *= 16;
  }
  cout << "The decimal equivalent is: " << dec_number << endl;
  return 0;
}

在这个代码中,使用了一个循环将十六进制数每一位的值依次提取出来,并根据其在十进制中的权值加权求和。如果当前位是0到9之间的数字,则直接将其转换成十进制,并乘上权值,加入到总数中。如果当前位是A到F之间的大写字母,则将其转换成对应的十进制数,并乘上权值,加入到总数中。

最后,根据结果输出十进制数,就实现了十六进制转十进制的功能。

总之,C++中通过使用输入流和输出流,以及字符串和数学计算方法,可以很容易地将十六进制数转换成十进制数。这对于计算机科学中许多应用是非常有用的。

  
  

评论区