
面试考官邢老师为您分享以下优质知识
在C语言中输出二进制数值主要有以下几种方法,可根据具体需求选择合适的方式:
一、使用 `printf` 的 `%b` 格式化输出(推荐)
C语言标准库提供了直接输出二进制数的功能,使用 `printf` 函数的 `%b` 格式说明符:
```c
include
int main() {
int num = 10;
printf("The binary representation of %d is %bn", num, num);
return 0;
}
```
运行结果:
```
The binary representation of 10 is 1010
```
注意事项:
`%b` 仅适用于非负整数;
若需输出带符号数的二进制表示,需手动处理符号位。
二、手动实现二进制转换(递归或迭代)
1. 递归方法(适用于正整数)
通过递归将整数与1进行按位与运算,逐步提取二进制位:
```c
include
void print_binary_recursive(int n) {
if (n == 0) return;
int bit = n & 1;
printf("%d", bit);
print_binary_recursive(n >
>
1);
}
int main() {
int num = 23;
printf("Binary representation of %d is: ", num);
print_binary_recursive(num);
printf("n");
return 0;
}
```
运行结果:
```
Binary representation of 23 is: 10111
```
2. 迭代方法(使用掩码)
通过循环与掩码(如 `1u = 0; i--) {
printf("%d", (n & (1u