1、首先,定义四个整型变量,保存十进制整数、二进制整数等计算值。
2、给变量i和二拆镇进制数赋初值,值为0。
3、接着,输入一个十进李旅制整数。
4、用while语句判断,条件为十进制数是否为零。
5、当十进制数哪御凳不为零时,对十进制数用2求余,保存在变量d中。
6、十进制数除以2,使数值缩小为原来的二分之一。
7、输出十进制数所对应的二进制数。
8、运行程序,输入任意一个十进制整数,计算机就会输出对应的二进制数。
#include <stdio.h>void transfer(int A[], int *c, int n, int b)
{
int i = 0
while(n>0)
{
A[i++] = n % b
n /= b
}
*c = i
}
int main()
{
int 行烂a[32],c,n,b
printf("输入整数和要转换为的进制:")
scanf("%d %d",&n,&b)
if( n<0 || 枣郑b>9 || b< 2)
{
printf("数档岩漏据非法。")
return 0
}
transfer(a,&c,n,b)
printf("结果为:")
while(--c >= 0)
{
printf("%d",a[c])
}
return 0
}
任意进制间的转换#include <stdio.h>
#include <string.h>
#include <math.h>
/*该函数可以实现小于整型数据的任意进制之间转换*/
/*以盯启枯下函数将a进制数s转换成b进制并输出*/
void f(int a,int b,char s[])
{ char r[17]
int i,n,t,k
for(n=strlen(s)-1,i=t=0*(s+i)!='\0'i++,n--) /*这里先转换成十进制数*/
{ if(*(s+i)<='9')
t+=(*(s+i)-'0')*int(pow(a,n))
else
t+=(*(s+i)-'凯洞A'+10)*int(pow(a,n))
}
for(i=0t!=0i++) /*再转换成b进制*/
{ k=t%b
if(k>9)r[i]='A'+k-10
else r[i]='0'旁枝+k
t/=b
}
r[i]='\0'
s=strrev(r)
printf("%s",s)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)