进行十进制到任意进制的转换需要将一个给定的十进制数转换为另一个进制(如二进制、八进制、十六进制等)。以下是一个示例的 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;
}
效果跟上面差不多。
本文提供了C++代码片段,演示如何将十进制数转换为二进制、八进制或十六进制等任意进制,包括复杂版和简化版的函数实现,以及如何使用示例中的`convertToBase`函数进行转换。
2万+

被折叠的 条评论
为什么被折叠?



