十六進位字串到位元組數組的轉換
在程式設計場景中,經常需要對十六進位字串進行轉換,十六進位字串以緊湊的形式表示二進位資料格式,轉換為位元組數組。位元組數組更適合直接資料操作和儲存。
這種轉換的一種有效方法是利用標準 strtol() 函數。此函數將一串數字解釋為指定基數的整數,使我們能夠提取十六進位字元的整數表示形式。
這是 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() 將其轉換為 char,為十六進位解釋提供基數 16。然後將產生的 char 附加到位元組向量。
透過使用此函數,您可以輕鬆地將十六進位字串轉換為位元組數組,從而實現二進位資料的高效處理和儲存。
以上是如何在 C 中將十六進位字串轉換為位元組數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!