Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar Antara Rentetan dan Heksadesimal dalam C?

Bagaimana untuk Menukar Antara Rentetan dan Heksadesimal dalam C?

Mary-Kate Olsen
Lepaskan: 2024-12-11 12:11:14
asal
688 orang telah melayarinya

How to Convert Between Strings and Hexadecimal in C  ?

Penukaran C Antara Rentetan dan Heksadesimal

Dalam C , jenis data boleh dimanipulasi dan diubah dengan cekap. Ini termasuk penukaran antara rentetan dan format heksadesimal.

Menukar Rentetan kepada Perenambelasan

Untuk menukar rentetan kepada perwakilan perenambelasannya, pendekatan biasa adalah menggunakan tatasusunan aksara digit perenambelasan. Berikut ialah contoh:

#include <string>

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

Dalam fungsi ini, digit heksadesimal disimpan dalam tatasusunan statik untuk akses pantas. Ia berulang melalui rentetan input, mengekstrak setiap aksara dan mewakilinya sebagai dua digit perenambelasan.

Menukar Perenambelasan kepada Rentetan

Untuk membalikkan proses dan menukar rentetan perenambelasan kembali kepada perwakilan asalnya, anda boleh menggunakan fungsi hex_to_string:

#include <stdexcept>

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

Fungsi ini mengesahkan bahawa input rentetan mempunyai panjang genap (dengan mengandaikan kesahihan setiap digit) dan menggunakan fungsi penolong hex_value untuk mentafsir digit perenambelasan individu.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Antara Rentetan dan Heksadesimal 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