C语言10进制转换成任意进制
给出两个数,第一个数a是以个10进制数值,第二个数b(2=<b<=16),结果输出用b进制表示的数字a...
给出两个数,第一个数a是以个10进制数值,第二个数b(2=<b<=16),结果输出用b进制表示的数字a
展开
5个回答
展开全部
#include<stdio.h>
int main()
{
int a,to,i=0;
char array[64]="";
scanf("%d%d",&a,&to);
while(a!=0)
{
array[i]=a%to;
if(array[i]>=10)
array[i]=array[i]-10+'A';
else
array[i]+=48;
a/=to;
i++;
}
i--;
while(i>=0)
{
printf("%c",array[i]);
i--;
}
printf("\n");
return 0;
}
注意,大于等于10的数用大写字母 A、B……Z 表示,可以转化为25进制的数,其实用数组的话没什么难度,注意逆序输出就行了。
int main()
{
int a,to,i=0;
char array[64]="";
scanf("%d%d",&a,&to);
while(a!=0)
{
array[i]=a%to;
if(array[i]>=10)
array[i]=array[i]-10+'A';
else
array[i]+=48;
a/=to;
i++;
}
i--;
while(i>=0)
{
printf("%c",array[i]);
i--;
}
printf("\n");
return 0;
}
注意,大于等于10的数用大写字母 A、B……Z 表示,可以转化为25进制的数,其实用数组的话没什么难度,注意逆序输出就行了。
展开全部
#include<stdio.h>
void convert(int a,int b)
{
int c=a/b,r=a%b;
if(c==0)
{
printf("%d",r);
return;
}
else
{
convert(c,b);
printf("%d",r);
}
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
convert(a,b);
printf("\n");
}
void convert(int a,int b)
{
int c=a/b,r=a%b;
if(c==0)
{
printf("%d",r);
return;
}
else
{
convert(c,b);
printf("%d",r);
}
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
convert(a,b);
printf("\n");
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用循环做,每次用a=a/b,余数存在数组c[]中,循环结束的标志是a/b=0,并且记住循环次数n,然后让数组从c[n]到c[0]依次输出。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-02-26
展开全部
#include <stdio.h>
void pFunc(int n)
{ printf("%c",n<10?(n+'0'):(n-10+'A'));}
void fun(int a,int b)
{
if(a<b)
pFunc(a);
else
{
fun(a/b,b);
pFunc(a%b);
}
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\r\n",a,b);
fun(a,b);
}
void pFunc(int n)
{ printf("%c",n<10?(n+'0'):(n-10+'A'));}
void fun(int a,int b)
{
if(a<b)
pFunc(a);
else
{
fun(a/b,b);
pFunc(a%b);
}
}
void main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\r\n",a,b);
fun(a,b);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
的C程序,希望对你有帮助
#include<stdafx.h>
#include<stdio.h>
#include <cstdlib>
#include<string.h>
void main()
{
long t1;
int i,n,t,len;
char a[100];
printf("Please input a number string:\n");
gets(a);
strupr(a);
len=strlen(a);
t1=0;
printf("Please input n(2or8or16):\n");
scanf("%d",&n);
for(i=0;i<len;i++)
{
if(a[i]-'0'>=n && a[i]<'A' || a[i]-'A'+10>=n)
{
printf("data error!!");
exit(0);
}
if(a[i]>='0' && a[i]<='9')
t=a[i]-'0';
else
if(a[i]>='A' && a[i]<='F')
t=a[i]-'A'+10;
else
{
printf("char error!!");
exit(0);
}
t1=t1*n+t;
}
printf("the decimalism number is %ld",t1);
}
要查看ASCII码的话可以这样
比如:
char ch='a';
printf("%d",ch);
输出:97
#include<stdafx.h>
#include<stdio.h>
#include <cstdlib>
#include<string.h>
void main()
{
long t1;
int i,n,t,len;
char a[100];
printf("Please input a number string:\n");
gets(a);
strupr(a);
len=strlen(a);
t1=0;
printf("Please input n(2or8or16):\n");
scanf("%d",&n);
for(i=0;i<len;i++)
{
if(a[i]-'0'>=n && a[i]<'A' || a[i]-'A'+10>=n)
{
printf("data error!!");
exit(0);
}
if(a[i]>='0' && a[i]<='9')
t=a[i]-'0';
else
if(a[i]>='A' && a[i]<='F')
t=a[i]-'A'+10;
else
{
printf("char error!!");
exit(0);
}
t1=t1*n+t;
}
printf("the decimalism number is %ld",t1);
}
要查看ASCII码的话可以这样
比如:
char ch='a';
printf("%d",ch);
输出:97
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询