十六进制与十进制的相互转化 (C++)

    技术2025-11-28  10

    #include<iostream> #include<string> #include<cctype> using namespace std; char s[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; int q_pow(int n, int x){ //快速幂 int ans = 1; while(n){ if(n & 1) ans *= x; x *= x; n >>= 1; } return ans; } void dec2hex(int n){ //10转16 char t[100]; int i = 0; while(n > 0){ t[i++] = s[n%16]; n /= 16; } for(int j = i-1; j >= 0; --j) cout << t[j]; cout << endl; } void hex2dec(string s){ //16转10 int index = 0, dec = 0; for(int i = s.length()-1; i >= 0; --i) if(isdigit(s[i])) dec += (s[i] - 48) * q_pow(index++, 16); else dec += (s[i] - 87) * q_pow(index++, 16); cout << dec << endl; } int main(){ int n; //cin >> n; //dec2hex(n); string s; cin >> s; hex2dec(s); return 0; }
    Processed: 0.033, SQL: 9