将输入的0和1数字序列表示的二进制数转换成八进制、十六进制数。
功能要求:
将输入的0和1数字序列存放到数组中。
从终端输入要转换的进制。
将转换后的结果保存到数组中,并以适当的形式输出。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*把数a从b进制转换成c进制*/
void transfer(char a[],int c)
{
char s[100];
int rv, n=0, base=1, i ,ii;
int b = 2;
int len = strlen(a);
i = len;
for(i = len - 1;i >= 0;i--)//a从b进制的转化为10进制的
{
ii = a[i]-'0';
n+=(ii%10)*base;
base*=b;
}
itoa(n, s, c);//函数调用n转化为C进制的,存在数组S中
sscanf(s, "%d ", &rv);
printf("将数%s转换成%10进制后是:%d\n",a,rv);
}
int main()
{
char x[10];
int c;
printf("输入你要转换进制的数和进制,用空格分开\n");
scanf("%s%d",x,&c);
transfer(x,c);
return 0;
}
下面是运行截图:
追问请问能不能把CPP文件传到我的邮箱里?万分感谢!
追答亲,直接COPY过去,然后新建一个.C文件就可以了。你要不会就留邮箱吧。记得采纳哦,亲~~
追问[email protected] 亲 发过来能用我一定会采纳的!~
追答已发送,亲