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

Bagaimana untuk Menukar Rentetan Hex kepada Tatasusunan Byte dalam C?

Linda Hamilton
Lepaskan: 2024-12-19 11:03:33
asal
886 orang telah melayarinya

How to Convert Hex Strings to Byte Arrays in C  ?

Menukar Rentetan Heksadesimal kepada Tatasusunan Byte

Apabila bekerja dengan data binari, selalunya perlu menukar rentetan perenambelasan kepada tatasusunan bait. Rentetan heksadesimal mewakili data binari mentah dalam format perenambelasannya. Begini cara anda boleh mencapai penukaran ini dalam C menggunakan rentetan hex panjang berubah-ubah.

Untuk menukar rentetan hex "01A1" kepada tatasusunan bait, kami akan menggunakan pendekatan 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

Fungsi ini berulang melalui rentetan hex, mengekstrak pasangan aksara pada satu masa dan menukarnya kepada bait sepadannya menggunakan fungsi strtol(). Tatasusunan bait yang terhasil kemudian dikembalikan.

Setelah anda menukar rentetan heks kepada tatasusunan bait, anda boleh menyimpannya dalam pembolehubah jenis char* atau std::vector seperti yang dikehendaki oleh aplikasi khusus anda. Dengan menulis tatasusunan bait pada fail dan menggunakan arahan hexdump -C, anda boleh mengesahkan bahawa data sepadan dengan rentetan hex asal.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Hex kepada Tatasusunan 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