C语言程序设计 进制转换

问题: 写一个函数,输入一个十六进制数,输出相应的十进制数

 本次代码采用的方法是按权相加例:十六进制 :96对应十进制 : 9*16^1 + 6*16^0 = 150; 
/* 	十六进制中有以下对应关系A(a) = 10;B(b) = 11;C(c) = 12;D(d) = 13;E(e) = 14;F(f) = 15;	  
*/
# include 
# include 
int main(){int Hextod(char []);char a[80];printf("Please enter HEX number : ");scanf("%s",a);printf("n = %d",Hextod(a))	;return 0;
}
int Hextod(char str[]){int sum=0,p=1,n;for(int i=strlen(str)-1;i>=0;i--){// 将字符串按照ASCii码转换成数值if(str[i]>='0' && str[i]<='9') n = str[i]-'0';else if(str[i]>='a' && str[i]<='f') n = str[i]-'a'+10;else if(str[i]>='A' && str[i]<='F') n = str[i]-'A'+10;sum += n*p;p *= 16;}return sum;	
}

样例输入:A158
样例输出 :41304


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部