以下是C语言程序 将十进制转换成任意进制 有些地方不懂 还望指教

2021-07-02 科技 170阅读
#include
void main()
{
int idec,i,idr,p=0,ibase;
char strdr[20],t;//定义字符类型 strdr[20]用于存放字符串,至于下标是几无所谓,但要长一些,否则位数不够(特别是转为二进制数.
printf("输入要转换的十进制数:");
scanf("%d",&idec);
printf("输入要转换的进制基数:");
scanf("%d",&ibase);
while(idec!=0)
{
idr=idec%ibase;
if(idr>=10)
strdr[p++]=idr-10+65;//是strdr[p++] idr-10+65是为了表示数码大于10,要从字母'A'开始向后数(65是字符'A'的ASCII码).
else
strdr[p++]=idr+48;//idr+48是为了将数码以字符形式表示(48是字符'0'的ASCII码)
idec/=ibase;
}
for(i=0;i{
t=strdr[i];
strdr[i]=strdr[p-i-1];
strdr[p-i-1]=t;
}
strdr[p]='\0';是字符串结束标志,防止出错,不可省去
printf("转换成%d进制后的数为:%s",ibase,strdr);
printf("\n");
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com