
肖老师为您分享以下优质知识
在C语言中输入二进制数据可以通过以下几种方法实现,具体选择取决于应用场景和数据类型:
一、输入二进制数(字符形式)
可以通过指定格式说明符 `%b` 或 `%B` 来读取二进制字符(0/1)序列。例如:
```c
include
int main() {
char binaryStr;
printf("请输入二进制数: ");
scanf("%b", binaryStr);
printf("转换后的十进制数: %dn", atoi(binaryStr));
return 0;
}
```
注意:
`scanf` 会将输入的字符序列直接转换为整数,需使用 `atoi` 函数将字符串转换为十进制数。
可以通过循环逐个检查输入字符是否为 '0' 或 '1',避免使用 `scanf` 带格式说明符:
```c
include
include
int main() {
char binaryStr = "";
int i;
printf("请输入二进制数: ");
for (i = 0; i < 100; i++) {
char ch = getchar();
if (ch == '0' || ch == '1') {
binaryStr[i] = ch;
} else {
printf("输入包含非二进制字符,请重新输入n");
return 1;
}
}
printf("转换后的十进制数: %dn", atoi(binaryStr));
return 0;
}
```
二、输入二进制数据(整数形式)
直接使用二进制字面量
C语言支持以 `0b` 或 `0B` 开头的字面量表示二进制数,例如:
```c
int binaryLiteral = 0b1010; // 十进制10
printf("二进制数 0b1010 的十进制值为: %dn", binaryLiteral);
```
但此方法仅适用于常量定义,不适用于运行时输入。
位运算操作
可以使用位运算符(如按位与 `&`、左移 `