进行十进制到任意进制的转换需要将一个给定的十进制数转换为另一个进制(如二进制、八进制、十六进制等)。以下是一个示例的 C++ 代码片段,用于将十进制数转换为任意进制:
复杂版:
#include <iostream>
#include <vector>
// Function to convert decimal to any base
void convertToBase(int num, int base) {
std::vector<int> result;
while (num > 0) {
result.push_back(num % base);
num /= base;
}
// Display the result in reverse order
for (int i = result.size() - 1; i >= 0; i--) {
// Convert numbers greater than 9 to corresponding letters for bases > 10
if (result[i] > 9) {
char hexChar = 'A' + (result[i] - 10);
std::cout << hexChar;
} else {
std::cout << result[i];
}
}
std::cout << std::endl;
}
int main() {
int decimalNumber = 42; // Example decimal number to convert
int targetBase = 2; // Target base (e.g., 2 for binary, 8 for octal, 16 for hexadecimal)
std::cout << "Decimal " << decimalNumber << " in base " << targetBase << " is: ";
convertToBase(decimalNumber, targetBase);
return 0;
}
这个简单的示例程序将一个给定的十进制数(这里是42)转换为特定的进制(这里是二进制),并显示转换后的结果。你可以在 targetBase
中指定要转换的目标进制。在上面的示例中,输入的十进制数为42,要转换为二进制,结果即为 101010
。你可以根据需要修改 decimalNumber
和 targetBase
的值来进行不同的转换。
简单版:
#include<iostream>
#include<string>
using namespace std;
void f(int n, int k) {
if (n == 0) {
return;
}
char num[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };
int temp=0;
temp = n % k;
n /= k;
f(n, k);
cout << num[temp];
}
int main() {
int X, M;
cin >> X >> M;
f(X, M);
return 0;
}
效果跟上面差不多。