HEX2DEC - Đổi hệ cơ số 16 sang hệ thập phân

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Cho một số nguyên dương trong hệ cơ số ~16~, hãy viết số đó trong hệ cơ số ~10~.

Input

  • Dòng đầu ghi số nguyên dương ~T~ là số bộ test;
  • ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~n~ trong hệ thập lục phân.

Giới hạn:

  • ~1≤T≤10^5,1≤n≤10^{18}~ (~n~ có không quá ~16~ chữ số ở hệ thập lục phân).

Output

  • Với mỗi số nguyên dương ~n~ trong hệ thập lục phân, in ra trên một dòng số đó trong hệ thập phân.

Sample

Input #1
3
5
7
A
Output #1
5
7
10

Problem source: Chuyên Sơn La Online Judge


Bình luận

Please read the guidelines before commenting.



  • 1
    mducc  đã bình luận lúc 3, Tháng 6, 2026, 2:45 sửa 2

    hint

    ta chuyển từ hệ nhị phân qua sô

    code tham khảo: những hàm này có thể giúp các bạn áp dụng vào nhiều bài tập khác!

    #include <bits/stdc++.h>
    using namespace std;
    string convert(long long n, int base)
    {
        if(n == 0) return "0";
        string digits = "0123456789ABCDEF";
        string res = "";
        while(n)
        {
            res += digits[n % base];
            n /= base;
        }
        reverse(res.begin(), res.end());
        return res;
    }
    long long dl(string s, int base) {
        long long res = 0;
        for (char c : s) {
            int val;
            if (c >= '0' && c <= '9') val = c - '0';
            else val = c - 'A' + 10;
            res = res * base + val;
        }
        return res;
    }
    int main() {
        ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
        int t;
        cin >> t;
        while (t--) {
            string s; 
            cin >> s;  
            cout << dl(s, 16) << endl; 
        }
    }
    

  • -2
    ______  đã bình luận lúc 11, Tháng 11, 2023, 12:34 chỉnh sửa

    Đây là cái hàm để chuyển đổi số, còn lại mấy bạn tự làm là đc r

    long long hexToDecimal(const string& a) { long long b = 0;

    for (char c : a) {
        b = (b << 4) | (isdigit(c) ? c - '0' : (toupper(c) - 'A' + 10));
    }
    
    return b;
    

    }