首頁 > 後端開發 > C++ > 如何在 C 中將十六進位字串轉換為位元組數組或字元數組?

如何在 C 中將十六進位字串轉換為位元組數組或字元數組?

Patricia Arquette
發布: 2024-12-28 05:27:10
原創
223 人瀏覽過

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

將十六進位字串轉換為位元組數組

在資料處理領域,經常需要將十六進位字串轉換為位元組數組以促進高效存儲和處理。此過程涉及將每對十六進位數字轉換為相應的二進位表示形式。

將十六進位字串轉換為字元數組

如果您希望將十六進位字串轉換為字元數組,您可以利用以下程式碼:

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;
}
登入後複製

此實作利用了內在的strtol()熟練地將文字轉換為位元組的函數。值得注意的是,它能夠處理任何偶數長度的十六進位字串。

範例:

std::string hex = "01A1";
auto bytes = HexToBytes(hex);
登入後複製

此程式碼將十六進位字串「01A1」轉換為名為的字元陣列包含二進位資料的位元組。隨後,您可以將此資料寫入檔案並使用 hexdump -C 檢查它以驗證其準確性。

以上是如何在 C 中將十六進位字串轉換為位元組數組或字元數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板