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
Lepaskan: 2024-12-28 05:27:10
asal
264 orang telah melayarinya

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;
}
Salin selepas log masuk

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);
Salin selepas log masuk

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