标签:style blog http color os io for ar art
一道作业题:请定义函数,实现十进制转换为二进制。
其实进制转换的问题很简单,只要知道了二进制,其他的进制也可迎刃而解,当然,我说的是10以内的进制啊。十进制转换为二进制的思想是:把转换数一直除以2,直到结果为1,然后将所得余数反向输出即可。所以,我们即可得到算法:
while (num != 0)
{
a[i]=num%2;
num=num/2;
i++;
}
所以,我们可以得到代码为:
#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); }
其中n便是所要得到的进制。
当然,辗转相除,也可用递归实现,其代码如下:
#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); }
标签:style blog http color os io for ar art
原文地址:http://www.cnblogs.com/angel-see-love/p/3935451.html