我到处都看了,但我没有找到答案。首先,我知道十进制的符号是%d
,八进制的符号是%o
,十六进制的符号是%x
。然而,我找不到的是二进制的符号。我将不胜感激任何帮助。
答案 0 :(得分:4)
您在查找二进制打印整数的格式说明符时遇到问题的原因是因为没有。您必须为您编写自己的功能以二进制打印数字。
所以对于一个无符号字节:
#include <stdio.h>
#include <limits.h>
void print_bin(unsigned char byte)
{
int i = CHAR_BIT; /* however many bits are in a byte on your platform */
while(i--) {
putchar('0' + ((byte >> i) & 1)); /* loop through and print the bits */
}
}
对于标准的unsigned int:
#include <stdio.h>
#include <limits.h>
void print_bin(unsigned int integer)
{
int i = CHAR_BIT * sizeof integer; /* however many bits are in an integer */
while(i--) {
putchar('0' + ((integer >> i) & 1));
}
}
相应地调整较大整数的函数。警惕签名移位,因为行为是未定义的,完全依赖于编译器。
答案 1 :(得分:1)
没有。如果你想以二进制输出,只需编写代码就可以了。
答案 2 :(得分:0)
没有直接的方法。一种方法是,您可以创建一个查找表,将一个字节转换为{1}的1&0和0。然后,您可以遍历字节并打印出查找表中的内容。
答案 3 :(得分:-1)
您正在寻找%c
格式说明符。它将int
操作数转换为char
并输出未更改的操作数。