How to print byte as two hex digits in Arduino
In embedded programming, you often want to print the hex value of a byte, consisting of two hex digits. For example, if you have uint8_t val = 14;, you intend to print 0x0E.
In Arduino you can do that using Serial.printf() with %02x as format specifier:
print_byte_hex.ino
Serial.printf("val = %02x\r\n", val);When using printf, %x means to format the value as hex. 02 means to pad the value with 0s up to a length of 2 digits. If you would format 14 using just %x, it would print E instead of 0E. This is why you need to use %02x.
Check out similar posts by category:
Arduino, Electronics, Embedded, PlatformIO
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow