C-进制转换

实验要求: 通过递归算法将十进制数转换成任意进制数,打印转换结果。

实验原理: 进制是数学中的概念,指表示数值大小的基。在计算机中,常见的进制有二进制、八进制和十六进制。不同进制的数码位数不同,对表示数字大小有重要的影响。

实验思路:

  1. 通过输入读取十进制数 X 和进制 M。
  2. 使用递归算法将十进制数 X 转换成任意进制数 M。
  3. 最后,打印出转换结果。

实验代码:

#include <stdio.h>
#include <stdlib.h>

void ConvertToM(int x, int m) {
    if (x == 0) {
        return;
    }
    ConvertToM(x / m, m); // 递归调用
    printf("%d", x % m); // 输出余数
}

int main() {
    int x, m;
    printf("Please input a decimal number X: ");
    scanf("%d", &x);
    printf("Please input a base number M: ");
    scanf("%d", &m);
    printf("%d to base %d is: ", x, m);
    ConvertToM(x, m);
    printf("\n");
    return 0;
}

运行结果:

Please input a decimal number X: 23
Please input a base number M: 2
23 to base 2 is: 10111

总结: 通过递归算法实现了十进制数转换成任意进制数的操作。在函数内部通过递归调用,将数字每次除以进制数,并输出余数。最后,将余数按逆序输出,即可得到转换结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值