16 進文字列からバイト配列への変換
プログラミング シナリオでは、多くの場合、バイナリ データをコンパクトに表す 16 進文字列を変換する必要があります。バイト配列にフォーマットします。バイト配列は、データの直接操作や保存に適しています。
この変換に対する効果的なアプローチの 1 つは、標準の strtol() 関数を利用することです。この関数は、数字の文字列を基数指定の整数として解釈し、16 進数文字の整数表現を抽出できるようにします。
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; }
この関数は使用します。文字のペアで 16 進文字列を繰り返し検査するループ。各ペアについて、単一の 16 進バイトを表す部分文字列を作成し、strtol() を使用してそれを char に変換し、16 進数の解釈に 16 の基数を提供します。結果の char はバイト ベクトルに追加されます。
この関数を利用すると、16 進文字列をバイト配列に簡単に変換でき、バイナリ データの効率的な処理と保存が可能になります。
以上がC で 16 進文字列をバイト配列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。