base16进制转换(c语言) 源源

完整代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int base16(int x)                  //自定义一个base16函数;这里的x对应下文的a[j];

    if (x >= 10 && x <= 15)     //x(即a[j])的值在10到15之间,输出以下符号
    {
        switch (x)
        {
            case 10:
                printf("A");
                break;
            case 11:
                printf("B");
                break;
            case 12:
                printf("C");
                break;
            case 13:
                printf("D");
                break;
            case 14:
                printf("E");
                break;
            case 15:
                printf("F");
                break;
        }
    }
    if (x < 10 || x>15)        
    {
        printf("%d", x);
    }
    return x;
}


int main()                  
{
    
    int n = 0;
    int a[200];
    int num = 0, i = 0, tem;
    printf("请输入要转为多少进制的数:");
    scanf("%d", &n);
    printf("输入数字:");
    scanf("%d", &num);
    do
    {
        tem = num % n;               //进制转换的代码
        num /= n;
        a[i++] = tem;         //这里的i用一次后加1(比如将8转为二进制,那么就有a[0]=0,                                                                                            a[1]=0,a[2]=0 ,a[3]=1,这时就多出一个a[4];          
    } while (num != 0);
    if (n >=10&&n<=16)
    {
        for (int j = i - 1;j >= 0;j--)      //所以在输出的时候,此时i=4,数组下标要减去1,再倒序输出
        {
            base16(a[j]);        //调用上面的base16函数;
        }
    }
    if (n <10)
    {
        for (int j = i - 1;j >= 0;j--)   //如上
        {
            printf("%d", a[j]);
        }
    }
    return 0;
此代码能实现从10进制到16进制以内的转换,代码比较基础,用的都是比较基础的语法,

主要是作者本人也是初学者,希望本人作品能给其他初学者带来帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值