码迷,mamicode.com
首页 > 其他好文 > 详细

进制转换

时间:2014-08-25 19:03:04      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   art   

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

其实进制转换的问题很简单,只要知道了二进制,其他的进制也可迎刃而解,当然,我说的是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

 

进制转换

标签:style   blog   http   color   os   io   for   ar   art   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!