要以二进制格式打印整数,可以使用 `printf` 函数的格式说明符 `%08b`,其中 `08` 表示输出至少8位,不足部分用0填充。以下是具体方法:
示例代码
```c
int main() {
int numbers = {0b1001001, 0b1100110, 0b1000000}; // 使用0b前缀明确表示二进制数
size_t i;
printf("二进制数列表:n");
for (i = 0; i < 3; i++) {
printf("%08bn", numbers[i]); // 打印8位二进制数
}
int binary_input;
printf("请输入一个二进制数: ");
scanf("%d", &binary_input);
printf("对应的十进制数是: %dn", binary_input);
return 0;
}
```
说明
二进制数表示
- 在C语言中,以 `0b` 开头的数字字面量表示二进制数(如 `0b1001001`);
- 若未使用 `0b` 前缀,数字默认为十进制(如 `1001001` 被解释为十进制数)。
格式说明符 `%08b`
- `%b`:按二进制输出整数;
- `08`:补零至8位,不足部分用0填充(例如 `5` 输出为 `00000101`)。
输入处理
- 使用 `scanf("%d", &binary_input)` 读取二进制数时,需注意该函数按十进制解析输入,因此建议输入带有 `0b` 前缀的二进制数;
- 若输入纯二进制字符串(如 `1011`),需使用 `strtol` 函数按二进制转换(如 `strtol(str, &end, 2)`)。
输出示例
```
二进制数列表:
01001001
01100110
00100000
请输入一个二进制数: 1011
对应的十进制数是: 11
```
通过上述方法,可以方便地将整数以二进制形式打印输出,并正确处理二进制输入。