#include using namespace std; //将一个16进制的灰阶转为一个整数,方便用来当数组的下标索引值 int toDec(char a, char b) { int res = 0; if (a >= 'A' && a <= 'F') res += (a - 'A' + 10) * 16; else res += (a - '0') * 16; if (b >= 'A' && b <= 'F') res += b - 'A' + 10; else res += b - '0'; return res; } //将一个十进制的灰阶值[0,255]转化成十六进制[0,FF] string toHex(int x) { int a = x % 16; // 0 ~ 15 int b = x / 16; // char c1; if (a >= 10) c1 = 'A' + a - 10; else c1 = '0' + a; char c2; if (b >= 10) c2 = 'A' + b - 10; else c2 = '0' + b; string res; res.push_back(c2); res.push_back(c1); return res; } int main() { cout << toDec('A', 'B') << endl; //输出:171,手工计算10*16+11=171 cout << toDec('1', '2') << endl; //18 cout << toDec('0', '2') << endl; //2 cout << toHex(171) << endl; cout << toHex(18) << endl; cout << toHex(2) << endl; return 0; }