可能重複:
Is there a printf converter to print in binary format?二進制數轉換
是否有任何內置的功能爲十進制數轉換成二進制數? 是否有二進制數字的格式說明符? 對於十六進制,它是%x和二進制? 請幫助我... 謝謝
可能重複:
Is there a printf converter to print in binary format?二進制數轉換
是否有任何內置的功能爲十進制數轉換成二進制數? 是否有二進制數字的格式說明符? 對於十六進制,它是%x和二進制? 請幫助我... 謝謝
一些libc中有它的擴展名(你可以printf的A%B),但這裏是一個基本的宏實現,如果你只需要二進制
#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)
順便說一句,奇怪的是它是在printf中有%b選項的dietlibc – technosaurus
這段代碼在一個非常常見的用例中失敗(帶有無限循環)。 –
您必須手動做到這一點的字符串表示。 –