Лично я делаю так:
Код
/******************************************************
* Преобразует в строку length младших битов *
* слова word. Строка dest должна иметь размер *
* по меньшей мере length + 1 *
******************************************************/
char* bitwise(uint32_t word, char* dest, uint8_t length)
{
register uint8_t i;
for (i = 0; i < length; i++)
dest[length - i - 1] = word & (1UL << i) ? '1' : '0';
dest[length] = '\0';
return dest;
}
Потом уже полученную строку пишу в терминал с необходимыми пояснениниями:
Код
char s[17];
uint16_t word = 0xAB;
printf_P(PSTR("Bitwise output of word: %s\n"), bitwise(word, s, 16));