进制转换

时间:2014-08-25 19:03:04   收藏:0   阅读:264

一道作业题:请定义函数,实现十进制转换为二进制。

其实进制转换的问题很简单,只要知道了二进制,其他的进制也可迎刃而解,当然,我说的是10以内的进制啊。十进制转换为二进制的思想是:把转换数一直除以2,直到结果为1,然后将所得余数反向输出即可。所以,我们即可得到算法:

while (num != 0)
 {
  a[i]=num%2;
  num=num/2;
  i++;
 }

所以,我们可以得到代码为:

 

bubuko.com,布布扣
#include<stdio.h>

int change(int num,int n)
{
    int i=0;
    int a[100];
    while (num != 0)
    {
        a[i]=num%n;
        num=num/n;
        i++; 
    }
    printf("这个数转换成%d进制为:\n",n);
    for(i=i-1;i>=0;i--)
    {
        printf("%d",a[i]);
    }
    printf("\n");
}


void main()
{
    int num;
    int n; 
    printf("请输入一个十进制的数:");
    scanf("%d",&num);
    printf("请输入你想转换的进制(输入2-9):");
    scanf("%d",&n);
    change(num,n);
}
Code1

 

其中n便是所要得到的进制。

当然,辗转相除,也可用递归实现,其代码如下:

bubuko.com,布布扣
#include<stdio.h>

int change(int num,int n)
{
    if( num ==0 ) 
    {
        return 0;
    }
    else 
        change( num/n,n );

   printf("%d",num%n);    
}

void main()
{
    int num;
    int n; 
    printf("请输入一个十进制的数:");
    scanf("%d",&num);
    printf("请输入你想转换的进制(输入2-9):");
    scanf("%d",&n);
    change(num,n);
}
Code2

 

原文:http://www.cnblogs.com/angel-see-love/p/3935451.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!