十进制与二进制转换,有大佬能教教我更巧妙的方法吗
include<stdio.h>
include<string.h>
include<math.h>
int main()
{
printf("请输入要转换的数,且十转二输入1,二转十输入0\n");
int a;
scanf("%d",&a);
if(a1)
{
printf("请输入十进制数:\n");
int b;
scanf("%d",&b);
int sz[20];
int c1=0;
for(int i=0;i<20;i++)
{
c1+=1;
if(b<2)
{
sz[i]=b;
break;
}
sz[i]=b%2;
b=b/2;
}
for(int j=c1-1;j>=0;j--)
printf("%d ",sz[j]);
}
else
{
printf("请输入二进制数:\n");
int sz1[20],c1=0,c2;
int sum=0;
for(int j=0;j<20;j++)
{
scanf("%d",&sz1[j]);
if(sz1[j]3)
break;
c1+=1;
}
for(int i=0;i<c1;i++)
{
c2=sz1[i]*pow(2,c1-1-i);
sum+=c2;
}
printf("%d",sum);
}
return 0;
}

浙公网安备 33010602011771号