バイナリ形式にprintf出力したいが、いいサンプルが見つからなかったため、作成しました。
#include <stdio.h>
#include <stdint.h>
#include <limits.h>
#include <assert.h>
#define PRINTB(x) { \
uint32_t sz = sizeof(x) * CHAR_BIT; \
uint32_t va = 0; \
assert(sz <= sizeof(uint32_t) * CHAR_BIT); \
while (sz){ \
va = 1 << (sz-1); \
(x & va) ? printf("1") : printf("0") ; \
va = 0; \
sz = sz - 1; \
} \
printf("\n"); }
int main()
{
char x = 0x1;
PRINTB(x);
return 0;
}