Heim >Backend-Entwicklung >C++ >Wie konvertiere ich einen Hex-String in ein Byte-Array oder Zeichen-Array in C?

Wie konvertiere ich einen Hex-String in ein Byte-Array oder Zeichen-Array in C?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-28 05:27:10241Durchsuche

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

Konvertieren eines Hex-Strings in ein Byte-Array

Im Bereich der Datenverarbeitung ist es oft notwendig, Hex-Strings in Byte-Arrays umzuwandeln um eine effiziente Lagerung und Verarbeitung zu ermöglichen. Bei diesem Vorgang wird jedes Paar hexadezimaler Ziffern in die entsprechende Binärdarstellung übersetzt.

Hex-Zeichenfolge in Zeichenarray konvertieren

Wenn Sie eine Hex-Zeichenfolge in ein Zeichen umwandeln möchten Array können Sie den folgenden Code nutzen:

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;
}

Diese Implementierung nutzt die intrinsische Funktion strtol() effizient aus wandelt Text in Bytes um. Insbesondere ist es in der Lage, jede Hex-Zeichenfolge mit gerader Länge zu verarbeiten.

Beispiel:

std::string hex = "01A1";
auto bytes = HexToBytes(hex);

Dieser Code konvertiert die Hex-Zeichenfolge „01A1“ in ein Zeichenarray mit dem Namen Bytes, die die Binärdaten enthalten. Anschließend können Sie diese Daten in eine Datei schreiben und sie mit hexdump -C untersuchen, um ihre Richtigkeit zu überprüfen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Hex-String in ein Byte-Array oder Zeichen-Array in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn