0

重複の可能性:
バイナリ形式で印刷するための printf コンバーターはありますか?

10 進数を 2 進数に変換する組み込み関数はありますか? 2 進数の書式指定子はありますか? 16 進数の場合は %x で、2 進数の場合は?

4

2 に答える 2

2

いいえ、C には 2 進数変換関数が組み込まれていません。しかし、それらを書くのは難しくなく、2 進数演算の理解を示す良い練習になります。

于 2012-12-12T02:31:08.220 に答える
-1

一部の libc は拡張子としてそれを持っています ( %b を printf できます) が、バイナリの文字列表現だけが必要な場合の基本的なマクロの実装を次に示します。

#define putbin(d) do{ \ 
  unsigned long long i=1ULL<<63; \ 
  while (!((unsigned long long) d & (i/=2))); /* optional - remove leading zeroes */ \ 
    do { ( (unsigned long long) d & i) ? write(1,"1",1) : write(1,"0",1); } \
    while (i/=2); \ 
write(1,"\n",1); /* optional - add new line */ \ 
} while (0)
于 2012-12-12T03:12:04.693 に答える