Dalam C , jenis data boleh dimanipulasi dan diubah dengan cekap. Ini termasuk penukaran antara rentetan dan format heksadesimal.
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; }
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.
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; }
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!