ホームページ > バックエンド開発 > C++ > C で 16 進数文字列をバイト配列または文字配列に変換するにはどうすればよいですか?

C で 16 進数文字列をバイト配列または文字配列に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-28 05:27:10
オリジナル
216 人が閲覧しました

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

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート