进制转换器:C++ 代码实现不同进制数据转换

本程序使用 C++ 语言实现任意两种进制 (2-16 进制) 之间的数据转换。输入包含原始进制、原始数和目标进制,输出转换为目标进制后的数。代码清晰易懂,并包含示例输入和输出。

输入

共三行,第一行是一个正整数,表示需要转换的数的进制 n (2≤n≤16),第二行是一个 n 进制数,若 n>10 则用大写字母 A∼F 表示数码 10∼15,并且该 n 进制数对应的十进制的值不超过 109,第三行也是一个正整数,表示转换之后的数的进制 m (2≤m≤16)。

输出

一个正整数,表示转换之后的 m 进制数。

样例输入

16
FF
2

样例输出

11111111

C++ 代码

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int charToNum(char c) { if (c >= '0' && c <= '9') { return c - '0'; } else { return c - 'A' + 10; } }

char numToChar(int num) { if (num >= 0 && num <= 9) { return num + '0'; } else { return num - 10 + 'A'; } }

string convertToDecimal(string num, int base) { int decimal = 0; int power = 1; for (int i = num.size() - 1; i >= 0; i--) { decimal += charToNum(num[i]) * power; power *= base; } return to_string(decimal); }

string convertToBase(string num, int base) { int decimal = stoi(num); string result = ''; while (decimal > 0) { int remainder = decimal % base; result += numToChar(remainder); decimal /= base; } reverse(result.begin(), result.end()); return result; }

int main() { int n; cin >> n; string num; cin >> num; int m; cin >> m;

string decimalNum = convertToDecimal(num, n);
string result = convertToBase(decimalNum, m);

cout &lt;&lt; result &lt;&lt; endl;

return 0;

}

进制转换器:C++ 代码实现不同进制数据转换

原文地址: https://www.cveoy.top/t/topic/qB3Q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录