Arduino: 64-Bit uint64_t als sechzehn Hex-Ziffern ausgeben

English Deutsch

In Arduino möchte man oft den Hex-Wert eines 64-Bit-Werts wie eines uint64_t ausgeben, bestehend aus sechzehn Hex-Ziffern. Wenn man beispielsweise uint64_t val = 169557370125; hat, möchte man 000000277a68250d ausgeben.

In Arduino kann man das mit Serial.printf() und %08lx08lx als Formatbezeichner tun, indem man den uint64_t in zwei uint32_t-Instanzen aufteilt und diese nacheinander ausgibt:

print_uint64_hex.ino
Serial.printf("%08lx%08lx\r\n",
    ((uint32_t)((val >> 32) & 0xFFFFFFFF)),
    ((uint32_t)(val & 0xFFFFFFFF)));

Siehe Arduino: 32-Bit uint32_t als acht Hex-Ziffern ausgeben für weitere Informationen dazu, was %x bedeutet und warum das 08 in %08x als printf-Formatbezeichner benötigt wird.


Check out similar posts by category: Arduino, Electronics, Embedded, PlatformIO