进制转换
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。
示例:
//输入 0xA
//输出 10
解答
方式一:
直接使用hex接收十六进制
#include <iostream> using namespace std; int main(){ int a; while ((cin >> hex >> a))//十六进制输入0xa { cout << a << endl;//十进制输出a } return 0; }
方式二:
使用字符串类型接收
#include<iostream> #include<string> using namespace std; int main() { string str; while (getline(cin, str)) { if (str.length() <= 0){ break; } long num = 0; int index = 16; for (int i = 2; i < str.length(); ++i){ if (str[i] >= '0' && str[i] <= '9'){ num = num * 16 + (str[i] - '0');//str[i]本身是char,转化成int才能加法,与‘0’的距离就是int } else num = num * 16 + (str[i] - 'A' + 10);//乘16因为,向后移动一个字符就代表增长一个16进制数量级 } cout << num << endl; } return 0; }
C++11