赞
踩
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
FFFF
65535
#include<stdio.h> #include<string.h> #include<math.h> int main() { char h[100]; scanf("%s",h); long long int i,j=0,len,sum=0;; len=strlen(h); for(i=len-1;i>=0;i--) { int v; if(h[i]>='0'&&h[i]<='9') { v=h[i]-'0'; } else { v=h[i]-'A'+10; } sum=sum+v*pow(16,j++); } printf("%lld",sum); return 0; }
注意:要求不超过八位的十六进制转化成的十进制并不能全部保存在int类型中,会超出int的最大值。在这里我们使用long long int 来保存结果。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。