0

可能重复:
是否有 printf 转换器以二进制格式打印?

是否有任何内置函数可以将十进制数转换为二进制数?二进制数是否有任何格式说明符?对于十六进制它是 %x 和二进制?

4

2 回答 2

2

不,C 没有内置的二进制转换函数。但是,它们并不难编写,并且是一个很好的练习,可以证明您对二进制算术的理解。

于 2012-12-12T02:31:08.220 回答
-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)
于 2012-12-12T03:12:04.693 回答