Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan Hex kepada Array Byte atau Array Aksara dalam C?

Bagaimana untuk Menukar Rentetan Hex kepada Array Byte atau Array Aksara dalam C?

Patricia Arquette
Patricia Arquetteasal
2024-12-28 05:27:10255semak imbas

How to Convert a Hex String to a Byte Array or Character Array in C  ?

Menukar Rentetan Hex kepada Tatasusunan Bait

Dalam bidang pengendalian data, sering kali menjadi perlu untuk menukar rentetan heks kepada tatasusunan bait untuk memudahkan penyimpanan dan pemprosesan yang cekap. Proses ini melibatkan menterjemah setiap pasangan digit perenambelasan ke dalam perwakilan binari yang sepadan.

Menukar Rentetan Hex kepada Tatasusunan Aksara

Jika anda ingin menukar rentetan heks kepada aksara tatasusunan, anda boleh memanfaatkan kod berikut:

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

  for (unsigned int i = 0; i < hex.length(); i += 2) {
    std::string byteString = hex.substr(i, 2);
    char byte = (char) strtol(byteString.c_str(), NULL, 16);
    bytes.push_back(byte);
  }

  return bytes;
}

Pelaksanaan ini memanfaatkan fungsi strtol() intrinsik yang cekap mengubah teks menjadi bait. Terutamanya, ia mampu mengendalikan sebarang rentetan hex panjang genap.

Contoh:

std::string hex = "01A1";
auto bytes = HexToBytes(hex);

Kod ini menukar rentetan hex "01A1" kepada tatasusunan aksara bernama bait yang mengandungi data binari. Selepas itu, anda boleh menulis data ini pada fail dan memeriksanya menggunakan hexdump -C untuk mengesahkan ketepatannya.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Hex kepada Array Byte atau Array Aksara dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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