16 進数文字列をバイト配列に変換する
データ処理の領域では、16 進数文字列をバイト配列に変換することが必要になることがよくあります。効率的な保管と処理を促進します。このプロセスには、16 進数の各ペアを対応するバイナリ表現に変換することが含まれます。
16 進数文字列を文字配列に変換する
16 進数文字列を文字に変換する場合配列では、次のコードを利用できます:
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() 関数。特に、偶数長の 16 進文字列を処理できる点に注意してください。
例:
std::string hex = "01A1"; auto bytes = HexToBytes(hex);
このコードは、16 進文字列「01A1」を 16 進文字列「01A1」という名前の文字配列に変換します。バイナリデータを含むバイト。その後、このデータをファイルに書き込み、hexdump -C を使用して調べて、その正確性を検証できます。
以上がC で 16 進数文字列をバイト配列または文字配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。