CVB2H - Đổi hệ nhị phân sang hệ cơ số 16

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ố ~2~ (hệ nhị phân), hãy viết số đó trong hệ cơ số ~16~.

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 xâu nhị phân (số được biểu diễn trong hệ nhị phân).

Giới hạn:

  • ~1≤T≤10^5~. Độ dài mỗi xâu nhị phân không quá ~63~

Output

  • Với mỗi xâu nhị phân, in ra trên một dòng số đó trong hệ thập lục phân (Các ký tự A.. F viết hoa).

Sample

Input #1
3
101
111
1010
Output #1
5
7
A

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 2, Tháng 6, 2026, 13:37

    hint

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

    rồi chuyển số qua hệ cơ số 16

    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;  
            long long n = dl(s, 2); 
            cout << convert(n, 16) << endl; 
        }
    }
    

  • -1
    congtyluuthaibao1978  đã bình luận lúc 26, Tháng 11, 2025, 10:42

    include <bits/stdc++.h>

    using namespace std;

    int main(){ ios::syncwithstdio(false); cin.tie(nullptr);

    int T;
    cin >> T;
    while (T--) {
        string b;
        cin >> b;
        unsigned long long x = 0;
        for (char c: b) {
            x = x * 2 + (c - '0');
        }
        // xuất x sang hệ 16, in hoa
        if (x == 0) {
            cout << "0\n";
        } else {
            string hex = "";
            while (x > 0) {
                int d = x % 16;
                char c;
                if (d < 10) c = char('0' + d);
                else c = char('A' + (d - 10));
                hex.push_back(c);
                x /= 16;
            }
            reverse(hex.begin(), hex.end());
            cout << hex << "\n";
        }
    }
    return 0;
    

    }