Rumah > pembangunan bahagian belakang > C++ > Bagaimana dengan Cekap Menukar Rentetan Hex kepada Array Byte dalam C?

Bagaimana dengan Cekap Menukar Rentetan Hex kepada Array Byte dalam C?

Patricia Arquette
Lepaskan: 2024-12-18 19:26:12
asal
493 orang telah melayarinya

How to Efficiently Convert a Hex String to a Byte Array in C  ?

Penukaran Rentetan Hex kepada Tatasusunan Byte

Menukar rentetan hex panjang berubah kepada tatasusunan bait ialah tugas biasa dalam pengaturcaraan, membolehkan perwakilan data binari dalam format yang boleh dibaca manusia. Begini cara untuk mencapai ini dengan cekap:

Untuk menukar rentetan heks seperti "01A1" kepada tatasusunan bait, kita boleh memanfaatkan fungsi strtol() terbina dalam untuk melaksanakan penukaran. Pelaksanaan berikut mencipta std::vektor aksara untuk menyimpan tatasusunan bait:

std::vector<char> HexToBytes(const std::string& hex) {
  std::vector<char> bytes;

  // Loop through the hex string in pairs of characters
  for (unsigned int i = 0; i < hex.length(); i += 2) {
    // Extract the current pair of characters
    std::string byteString = hex.substr(i, 2);

    // Convert the pair to a char using strtol()
    char byte = (char)strtol(byteString.c_str(), NULL, 16);

    // Append the char to the byte array
    bytes.push_back(byte);
  }

  // Return the byte array
  return bytes;
}
Salin selepas log masuk

Pendekatan ini berfungsi untuk sebarang rentetan hex panjang genap. Fungsi strtol() mengambil penuding kepada tatasusunan aksara byteString.c_str() dan asas (16 untuk perenambelasan).

Dengan menggunakan fungsi HexToBytes() ini, anda boleh menukar rentetan hex kepada bait dengan mudah tatasusunan, membolehkan anda bekerja dengan data binari dengan cara yang mudah dan fleksibel.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan Hex kepada Array Byte 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