十六进制转十进制C++算法示例

非淡泊无以明志,非宁静无以致远。这篇文章主要讲述十六进制转十进制C++算法示例相关的知识,希望能为你提供帮助。
问题描述从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535  解决方法:    其实这个问题并不难,但就是过不了测评,出现了以下几个问题,下面上代码:

#include #include #include< string.h> int main(){char num[8]; long long sum,i; // 知识点 ① int整型范围太小,要用longlonggets(num); sum = 0; int len = strlen(num); // 知识点 ② 字符串的长度,头文件“ string.h” for(i=0; num[i]!=‘ \0‘ ; i++){switch(num[i]){case ‘ A‘ :sum += 10*pow(16,len - i -1); // 知识点 ③ 次方数!!!break; case ‘ B‘ :sum += 11*pow(16,len - i - 1) ; break; case ‘ C‘ :sum += 12*pow(16,len - i - 1); break; case ‘ D‘ :sum += 13*pow(16,len - i - 1); break; case ‘ E‘ :sum += 14*pow(16,len - i - 1); break; case ‘ F‘ :sum += 15*pow(16,len - i - 1); break; default:sum += (num[i]-48)*pow(16,len - i - 1); break; }}printf(" %I64d" ,sum); // 注意输出格式return 0; }

【十六进制转十进制C++算法示例】 

    推荐阅读