バイナリ形式に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; }
No comments:
Post a Comment