/*******************十进制转二进制******************/
#include "stdio.h"
#include "math.h"
void main()
{int shi,i,shang,yu;
char x[17],lx[17];
x[16]='\0'; lx[16]='\0';
clrscr();
printf("qing shu ru yi ge shi jing zhi su:");
scanf("%d",&shi);
printf("%d",shi);
shang=shi/2; yu=shi%2;
for(i=0;shang!=0;i++)
{x[i]=yu+48; /*得到相应的字符*/
yu=shang%2; shang=shang/2;
}
x[i]=yu+48;
while (i!=15)
x[++i]=48;
/*剩余的变0*/
for(i=15;i>=0;i--)
lx[abs(i-15)]=x[i];
/*反转x[16]的顺序并保存在lx[16]中,因为10to2时是从下到上的*/
printf("(%d)=(%s)B",shi,lx);
getch();
}
/*******************二进制转十进制******************/
#include "stdio.h"
#include "math.h"
void main()
{static char x[33];
unsigned long i=0,j=0,shi=0;
clrscr();
printf("qing shu ru yi ge 2 jing zhi su:");
scanf("%s",x);
for(j=0;x[j]!='\0';j++);
j--;
for(i=0;i<=j;i++)
shi+=(x[i]-48)*pow(2,j-i);
printf("(%s)B=%lu",x,shi);
getch();
}
考虑不太周到,功能有限