16 進文字列のバイト配列への変換
バイナリ データを扱う場合、多くの場合、16 進文字列をバイト配列に変換する必要があります。 16 進文字列は、生のバイナリ データを 16 進形式で表します。可変長の 16 進文字列を使用して C でこの変換を実行する方法を次に示します。
16 進文字列「01A1」をバイト配列に変換するには、次のアプローチを使用します。
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; }
この関数は 16 進文字列を反復処理し、一度に文字のペアを抽出し、strtol() 関数を使用して対応するバイトに変換します。結果のバイト配列が返されます。
16 進文字列をバイト配列に変換したら、それを char* 型または std::vector
以上がC で 16 進数文字列をバイト配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。