21xrx.com
2024-09-20 01:09:44 Friday
登录
文章检索 我的文章 写文章
C++实现十六进制转十进制
2023-07-01 18:35:19 深夜i     --     --
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++中通过使用输入流和输出流,以及字符串和数学计算方法,可以很容易地将十六进制数转换成十进制数。这对于计算机科学中许多应用是非常有用的。

  
  

评论区

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