Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chuyển đổi chuỗi giá trị Hexadecimal sang chuỗi ASCII trong C++

Trong hướng dẫn này, chúng ta sẽ thảo luận về chương trình chuyển đổi chuỗi giá trị hexadecimal sang chuỗi giá trị ASCII tương ứng.

Ý tưởng chính

Mỗi ký tự ASCII được biểu diễn bởi 2 ký tự hex (1 byte). Chương trình đọc từng cặp ký tự hex, chuyển đổi sang số nguyên cơ số 16, sau đó ép kiểu thành ký tự ASCII.

Ví dụ minh họa

#include <bits/stdc++.h>
using namespace std;

string convert_ASCII(string hex) {
    string ascii = "";
    for (size_t i = 0; i < hex.length(); i += 2) {
        // Lấy 2 ký tự từ chuỗi hex
        string part = hex.substr(i, 2);
        // Chuyển đổi cơ số 16 sang ký tự
        char ch = stoul(part, nullptr, 16);
        // Thêm vào chuỗi ASCII
        ascii += ch;
    }
    return ascii;
}

int main() {
    cout << convert_ASCII("6176656e67657273") << endl;
    return 0;
}

Kết quả

avengers

Giải thích: Chuỗi hex "6176656e67657273" được chia thành các cặp: 61 76 65 6e 67 65 72 73. Mỗi cặp chuyển thành ký tự ASCII: 'a' 'v' 'e' 'n' 'g' 'e' 'r' 's' → "avengers". Hàm stoul với cơ số 16 thực hiện chuyển đổi hex sang số nguyên.