基础练习 十六进制转十进制
时间限制:1.0s 内存限制:512.0MB
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
分析:
十六进制转化为十进制的方法:
十六进制从个位开始,将每一位所对应的十进制数 * pow (16, j) 求和
C/C++代码实现(AC):
1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdio> 5 #include <cmath> 6 #include <stack> 7 #include <map> 8 #include <queue> 9 10 using namespace std; 11 12 int main() 13 { 14 char s[10]; 15 scanf("%s", s); 16 long long len = strlen(s), temp = 0; 17 for (int i = len - 1, j = 0; i >= 0; -- i, ++ j) 18 if (s[i] >= '0' && s[i] <= '9' )temp += pow (16, j) * (s[i] - '0'); 19 else temp += pow(16, j) * (s[i] - 'A' + 10); 20 printf("%lld ", temp); 21 return 0; 22 }