用c++程序实现10进制向其他进制转换

  只要明白进制转换的原理就可以用程序写出来,现在给大家说明一下进制转换的原理以及在c++程序中的实现。

我们都知道10进制,就是我们所学所用的进制,在每个数满10的时候不能直接写在数上,比如20,不能写成110,这就有一个进制的问题,当一个数成了10的时候就向前一位进一,进制也是这一个道理,比如n进制就是一位数到n的时候向前一位进一,不能大于小于n(这单独一位数)

就比如我们求10进制的各位的数一样,我们先求个位数,既本身与10的余数,再是与10*10的余数,再是10*10*10.......这样类推,进制转换求各个位的数也是一样,就比如我们要求n进制,那么先求本身除n的余数,然后再在本身除n的前提下,求n的余数,再在数本身除n*n的情况下除n的余数,直到得到0为止,这样让余数从后往前依次组合,就得到了我们要的进制结果。下面是一段实现程序,当进制转换大于10的时候,有的数需要用字母代替,这时我们让那个数+55,然后强制转换成char字符型,就得到了字母。

#include <iostream>
using namespace std;

int main()
{
    long n;
    int p,c,m=0,s[100];
    cin>>n;
cin>>p;

    while (n!=0)
    {
        c=n%p;
        n=n/p;
        m++;s[m]=c;
    }

    for(int k=m;k>=1;k--)
    {
        if(s[k]>=10)
            cout<<(char)(s[k]+55);
        else
            cout<<s[k];
    }

 return 0;
}
 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值