求十进制整数的任意进制转换

Posted cyx-b

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求十进制整数的任意进制转换相关的知识,希望对你有一定的参考价值。

算法应该采用短除法

十进制:10 转换成 二进制:1010

 (第一次) 10%2 = 0 , 10/2 = 5

? (第二次) 5 % 2 = 1 , 5/2 = 2

? (第三次) 2 % 2 = 0 , 2/2 = 1

? (第四次) 1 % 2 = 1 , 1/2 = 0
不难看出,短除算法计算的结果是从低位开始的(逆序的)

#include<iostream>
using namespace std;

void change(int a,int b)
{
    int i,cnt=0;       //cnt来数转换后的长度
    int number[500]={0};
    while(a)            //a为0时结束运算
    {
        number[cnt]=a%b;
        cnt++;
        a=a/b;
    }
    for(i=cnt-1;i>=0;i--)      //将转换后的结果逆序输出
    {
        cout<<number[i];
    }
}

int main()
{
    int x,n;
    cin>>x>>n;  //输入十进制整数和进制类型
    change(x,n);
    return 0;
}

 技术图片

 

以上是关于求十进制整数的任意进制转换的主要内容,如果未能解决你的问题,请参考以下文章

求十进制转换二进制C语言代码

进制转换

进制转换

1118.数值转换

1.13.1

c语言辗转相除法 将十进制转换成任意进制的数 运行结果出错,与正确不符,求指导哪里出错