Rumah > pembangunan bahagian belakang > C++ > Bagaimana dengan Cekap Menukar Antara Rentetan Heksadesimal dan Rentetan Piawai dalam C?

Bagaimana dengan Cekap Menukar Antara Rentetan Heksadesimal dan Rentetan Piawai dalam C?

Patricia Arquette
Lepaskan: 2024-12-15 22:23:13
asal
909 orang telah melayarinya

How to Efficiently Convert Between Hexadecimal Strings and Standard Strings in C  ?

Menukar Rentetan Heksadesimal kepada Rentetan dalam C

Penukaran rentetan antara format teks perenambelasan dan standard memerlukan pendekatan yang mantap dalam C . Berikut ialah panduan terperinci:

Tukar Rentetan kepada Perenambelasan:

Fungsi string_to_hex() menawarkan penyelesaian mudah:

std::string string_to_hex(const std::string& input) {
    static const char hex_digits[] = "0123456789ABCDEF";
    std::string output;
    output.reserve(input.length() * 2);
    for (unsigned char c : input) {
        output.push_back(hex_digits[c >> 4]);
        output.push_back(hex_digits[c & 15]);
    }
    return output;
}
Salin selepas log masuk

Tukar Heksadesimal kepada Rentetan:

Untuk menukar daripada perenambelasan kepada rentetan, fungsi hex_to_string() memastikan ketepatan:

std::string hex_to_string(const std::string& input) {
    const auto len = input.length();
    if (len & 1) throw std::invalid_argument("odd length");
    std::string output;
    output.reserve(len / 2);
    for (auto it = input.begin(); it != input.end(); ) {
        int hi = hex_value(*it++);
        int lo = hex_value(*it++);
        output.push_back(hi << 4 | lo);
    }
    return output;
}
Salin selepas log masuk

Contoh Penggunaan:

Untuk menunjukkan kefungsian:

std::string original_string = "Hello World";
std::string hex_string = string_to_hex(original_string);
std::cout << "Hexadecimal representation: " << hex_string << std::endl;
std::string recovered_string = hex_to_string(hex_string);
std::cout << "Recovered string: " << recovered_string << std::endl;
Salin selepas log masuk

Output:

Hexadecimal representation: 48656c6c6f20576f726c64
Recovered string: Hello World
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Antara Rentetan Heksadesimal dan Rentetan Piawai dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan