题解 | #十进制整数转十六进制字符串#
十进制整数转十六进制字符串
https://www.nowcoder.com/practice/80eca5f47e6f473893151b863b25aba1
#include <iostream>#include <string>#include<vector>using namespace std;
string toHexString(int n);
int main() {
int n; cin >> n; string hexStr = toHexString(n); cout << hexStr << endl; return 0;
}
string toHexString(int n) {// write your code here......int a = n;//首先计算余数,并存储到向量中int k = n;vector<int> s;while (true){k = a % 16;//注意这个式子一定要在下下面式子之前,因为如果放在之后,所得到的余数是更新后的a%16的余数,而不是当前的a%16的余数。注意变量值的变化a = a / 16;if (a == 0) {s.push_back(k);break;}s.push_back(k);}
string w;//设定输出的字符串 vector<int>::reverse_iterator rit;//为了获取反向的余数 for (rit = s.rbegin(); rit != s.rend(); rit++) { switch (*rit) { //必须是整型号 case 10: w = w + "A"; break; case 11: w = w + "B"; break; case 12: w = w + "C"; break; case 13: w = w + "D"; break; case 14: w = w + "E"; break; case 15: w = w + "F"; break; default: w = w + to_string(*rit); break; } } return w;
}