0 Pluspunkte 0 Minuspunkte

Wenn ich eine unbestimmte Anzahl an Bytes habe (char[]) wie kann ich das in hexadezimaler Form darstellen?

\x01\x04\x0A ... 
von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Dazu kannst du dir eine Funktion schreiben die das Array Byte für Byte durchläuft und als "\\x%02X" formatiert ausgibt.

#include <stdio.h>

void printByteArray(const unsigned char *array, size_t length) {
    for (size_t i = 0; i < length; i++) {
        printf("\\x%02X ", array[i]);
    }
    printf("\n");
}

int main() {
    // Beispiel-Byte-Array
    unsigned char byteArray[] = {0x01, 0x00, 0x04, 0xA};

    // Anzahl der Elemente im Byte-Array berechnen
    size_t arrayLength = sizeof(byteArray) / sizeof(byteArray[0]);

    // Byte-Array in hexadezimaler Form ausgeben
    printByteArray(byteArray, arrayLength);

    return 0;
}
von (716 Punkte)