C语言10进制转8进制,程序怎么写

如题所述

第1个回答  2019-01-21
int
hextodec(char
*s)//调用时实参必须分配有空间
{
static
int
m;
int
n=strlen(s);
if(*s>='a'&&*s<='z')//十六进制字符串需大写
m+=(*s-'a'+10)*pow(16,n-1);
else
m+=(*s-'0')*pow(16,n-1);
if(n==1)
return
m;
else
hextodec(s+1);//递归调用
}
其实这个进制转换不用递归更好写,效率更高。你的问题补充没看懂。读取的字符串含有非法字符,这个你自己再写一个格式化成标准十六进制的字符串函数,就行了。
相似回答