
风吹过的记忆为您分享以下优质知识
在C语言中,`printf`函数可以通过格式控制符`%b`以二进制形式输出整数。以下是具体说明及示例:
一、使用 `%b` 格式说明符
语法:`printf("%b", number);`
说明:`%b` 用于直接输出整数的二进制表示(0和1)。
二、附加说明符
宽度与填充:可通过`%0w`(宽度为`w`,前面补零)或`%-w`(左对齐)控制输出格式。
示例:
```c
printf("%010b", 10); // 输出:000000001010
printf("%-8b", 10); // 输出:1010(左对齐)
```
三、注意事项
部分编译器可能不支持`%b`,需使用`%c`手动转换(见后续方法)。
支持`int`、`long`、`long long`等整数类型。
四、替代方法(当`%b`不可用时)
若目标平台不支持`%b`,可通过以下两种方式实现二进制输出:
1. 递归函数实现
```c
include
void print_binary(unsigned int num) {
if (num >
1) {
print_binary(num >
>
1);
}
putchar((num & 1) ? '1' : '0');
}
int main() {
unsigned int num = 12345;
printf("Decimal: %un", num);
printf("Binary: ");
print_binary(num);
printf("n");
return 0;
}
```
2. 位运算实现
```c
include
void print_binary(unsigned int num) {
for (int i = 31; i >
= 0; i--) {
printf("%d", (num & (1