首页  > 教育解读  > printf怎么打印二进制数

printf怎么打印二进制数

2025-05-07 00:36:30
孙老师
孙老师已认证

孙老师为您分享以下优质知识

在C语言中,`printf`函数默认不支持直接打印二进制数,但可通过以下两种方式实现:

一、使用标准格式说明符 `%b`(推荐)

C99标准新增了 `%b` 格式说明符,可直接以二进制形式输出整数。语法为 `printf("%b", number)`,支持附加宽度(如 `%-10b`)和填充符号(如 `0`)。

示例代码:

```c

include

int main() {

int num = 10;

printf("%b", num); // 输出 1010

printf("%-10b", num); // 输出 00001010

printf("%010b", num); // 输出 00001010

return 0;

}

```

二、手动转换后使用 `%s` 格式说明符

若使用旧版C标准(不支持 `%b`),需手动将整数转换为二进制字符串,再通过 `%s` 输出。常用方法包括位操作和递归实现。

1. 位操作法(推荐)

```c

include

include

void print_binary(unsigned int num) {

char binary;

for (int i = 31; i >

= 0; i--) {

binary[i] = (num & (1 1) {

print_bin(number >

>

1);

}

putchar((number & 1) ? '1' : '0');

}

int main() {

int num = 0xAF01BC;

printf("Binary representation: ");

print_bin(num); // 输出 10101010111001

return 0;

}

```

注意事项:

使用 `%b` 时,需确保编译器支持C99标准(如使用 `-std=c99` 编译选项);

手动转换时,建议使用固定长度数组存储二进制字符串,并在末尾添加空字符 `0` 以确保正确输出。