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