c语言进制转换递归
时间: 2023-12-30 22:22:50 浏览: 46
以下是C语言进制转换递归的代码示例:
```c
#include <stdio.h>
void convert(int num, int base) {
if (num == 0) {
return;
}
int remainder = num % base;
convert(num / base, base);
if (remainder < 10) {
printf("%d", remainder);
} else {
printf("%c", remainder - 10 + 'A');
}
}
int main() {
int num, base;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("请输入要转换的进制数:");
scanf("%d", &base);
printf("转换结果为:");
convert(num, base);
printf("\n");
return 0;
}
```
相关问题
c语言递归十进制转换
下面是使用递归实现十进制转换为其他进制的C语言代码:
```c
#include <stdio.h>
void decimalToBase(int decimalNum, int base){
if(decimalNum == 0){
return;
}
int remainder = decimalNum % base;
decimalToBase(decimalNum / base, base);
if(remainder < 10){
printf("%d", remainder);
}else{
printf("%c", 'A' + remainder - 10);
}
}
int main(){
int decimalNum = 23;
int base = 2;
printf("%d in base %d is: ", decimalNum, base);
decimalToBase(decimalNum, base);
printf("\n");
return 0;
}
```
在这个代码中,我们定义了一个函数 `decimalToBase`,它接受两个参数:一个是需要转换的十进制数 `decimalNum`,另一个是目标进制 `base`。
在函数中,我们首先计算出 `decimalNum` 除以 `base` 的商和余数,然后递归调用 `decimalToBase` 函数,并将商作为参数传入。递归调用会一直进行,直到 `decimalNum` 等于0为止。
当 `decimalToBase` 函数递归返回时,我们输出余数。如果余数小于10,则直接输出数字。否则,我们将余数转换为大写字母并输出。
在 `main` 函数中,我们定义了需要转换的十进制数和目标进制,并调用 `decimalToBase` 函数进行转换。
c语言递归十进制转换二进制
下面是使用递归实现十进制转换为二进制的C语言代码:
```c
#include <stdio.h>
void decimalToBinary(int decimalNum){
if(decimalNum == 0){
return;
}
decimalToBinary(decimalNum / 2);
printf("%d", decimalNum % 2);
}
int main(){
int decimalNum = 23;
printf("%d in binary is: ", decimalNum);
decimalToBinary(decimalNum);
printf("\n");
return 0;
}
```
在这个代码中,我们定义了一个函数 `decimalToBinary`,它接受一个参数:需要转换的十进制数 `decimalNum`。
在函数中,我们首先计算出 `decimalNum` 除以2的商和余数,然后递归调用 `decimalToBinary` 函数,并将商作为参数传入。递归调用会一直进行,直到 `decimalNum` 等于0为止。
当 `decimalToBinary` 函数递归返回时,我们输出余数。
在 `main` 函数中,我们定义了需要转换的十进制数,并调用 `decimalToBinary` 函数进行转换。最后,我们输出转换后的二进制数。