可能重复:
Is there a printf converter to print in binary format?
是否有内置函数将十进制数转换为二进制数? 二进制数是否有任何格式说明符? 对于hex,它是%x和二进制?
答案 0 :(得分:2)
不,C没有内置的二进制转换函数。但是,它们并不难写,并且是一个很好的练习,可以证明你对二进制算术的理解。
答案 1 :(得分:-1)
有些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)