c语言编一个函数,实现从十进制数的各种进制转换。
时间: 2024-05-16 18:12:07 浏览: 65
可以编写一个函数,输入为十进制数和转换后的进制数,输出为转换后的结果。具体实现可以先将十进制数除以进制数,得到余数和商,将余数记录下来,再用商继续除以进制数,重复上述步骤直到商为0为止。最后将得到的余数倒叙排列起来,就是转换后的结果。以下是伪代码示例:
```
void decimalToOther(int decimal, int radix) {
int remainder;
string result = "";
while(decimal > 0) {
remainder = decimal % radix;
decimal = decimal / radix;
result += to_string(remainder);
}
reverse(result.begin(), result.end()); //反转得到的余数字符串
cout << result << endl;
}
```
调用示例:decimalToOther(123, 16); //将十进制数123转换为16进制
相关问题
C语言编一个函数,实现从十进制数的各种进制转换。
可以使用以下代码实现从十进制数的各种进制转换:
```c
#include <stdio.h>
void convert(int num, int base) {
if (num == 0) {
return;
}
convert(num / base, base);
printf("%d", num % base);
}
int main() {
int num = 12345;
int base = 2; // 要转换的进制
convert(num, base);
return 0;
}
```
该函数使用递归的方式,将十进制数不断除以要转换的进制,直到商为0为止。在执行完除法操作后,将余数输出即可。
用c语言编写一个函数,将十进制数转换为十六进制数,在主函数中实现输入和输出
好的,这是一个简单的将十进制数转换为十六进制数的C语言函数:
```c
#include <stdio.h>
void decToHex(int num) {
int rem[50], i = 0, j;
while (num != 0) {
rem[i] = num % 16;
num /= 16;
i++;
}
printf("十六进制数为:");
for (j = i - 1; j >= 0; j--) {
if (rem[j] >= 0 && rem[j] <= 9) {
printf("%d", rem[j]);
} else {
printf("%c", rem[j] + 55);
}
}
}
int main() {
int num;
printf("请输入一个十进制数:");
scanf("%d", &num);
decToHex(num);
return 0;
}
```
这个函数将十进制数转换为十六进制数,并在控制台输出结果。在主函数中,我们需要输入一个十进制数,然后调用这个函数。
阅读全文