将输入的0和1数字序列表示的二进制数转换为八进制、十六进制数。
(2)功能要求
①将输入的0和1数字序列存放到数组中。
②从终端输入要转换的进制。
③将转换后的结果保存到数组中,并以适当的形式输出。
④若要转换成任意进制数,程序应如何编写?
#include<stdio.h>
int main()
{
char a[30];
char string[30];
int m=1,n=1,s=0,i,j;
printf("请输入一个二进制的数:\n");
scanf("%s",a);
printf("请输入想要转换的进制:\n");
scanf("%d",&j);
for(i=1;;i++)
{
if(a[i]=='\0')
break;
else
m++;
}
for(i=m-1;i>=0;i--)
{
s=s+(a[i]-'0')*n;
n=n*2;
}
itoa(s,string,j);
printf("%s\n",string);
}
运行结果如下: