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:
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 0
s 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
.