Heim > Backend-Entwicklung > C++ > Wie konvertiert man einen Hex-String effizient in ein Byte-Array in C?

Wie konvertiert man einen Hex-String effizient in ein Byte-Array in C?

Patricia Arquette
Freigeben: 2024-12-18 19:26:12
Original
487 Leute haben es durchsucht

How to Efficiently Convert a Hex String to a Byte Array in C  ?

Hex-String-Konvertierung in Byte-Array

Das Konvertieren eines Hex-Strings variabler Länge in ein Byte-Array ist eine häufige Aufgabe in der Programmierung und ermöglicht die Darstellung von Binärdaten in einem für Menschen lesbaren Format. So erreichen Sie dies effizient:

Um einen Hex-String wie „01A1“ in ein Byte-Array zu konvertieren, können wir die integrierte Funktion strtol() nutzen, um die Konvertierung durchzuführen. Die folgende Implementierung erstellt einen std::vector von Zeichen zum Speichern des Byte-Arrays:

std::vector<char> HexToBytes(const std::string& hex) {
  std::vector<char> bytes;

  // Loop through the hex string in pairs of characters
  for (unsigned int i = 0; i < hex.length(); i += 2) {
    // Extract the current pair of characters
    std::string byteString = hex.substr(i, 2);

    // Convert the pair to a char using strtol()
    char byte = (char)strtol(byteString.c_str(), NULL, 16);

    // Append the char to the byte array
    bytes.push_back(byte);
  }

  // Return the byte array
  return bytes;
}
Nach dem Login kopieren

Dieser Ansatz funktioniert für jede Hex-Zeichenfolge gerader Länge. Die Funktion strtol() nimmt einen Zeiger auf das Zeichenarray byteString.c_str() und die Basis (16 für hexadezimal).

Mit dieser Funktion HexToBytes() können Sie einen Hex-String einfach in ein Byte konvertieren Array, mit dem Sie bequem und flexibel mit Binärdaten arbeiten können.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage