在C语言中输入二进制数主要有以下两种方式,具体取决于输入形式和需求:
一、通过 `scanf` 函数直接输入二进制数(推荐)
使用 `%b` 或 `%B` 格式说明符,可直接读取二进制数(仅包含0和1)。
示例代码:
```c
include
int main() {
unsigned int binaryNum;
printf("Enter a binary number: ");
scanf("%b", &binaryNum);
printf("You entered the binary number: %dn", binaryNum);
return 0;
}
```
注意事项:
输入必须严格为二进制(0和1),否则会导致错误。
适用于标准输入(如键盘输入)。
二、通过字符串输入二进制数(灵活处理)
若输入为二进制字符串(如 "1010"),需自行解析转换。
示例代码:
```c
include include include int main() { char str; int sum = 0, x = strlen(str); for(int i = 0; i < x; i++) { if(str[i] == '1' || str[i] == '0') { sum += (str[i] - '0') * pow(2, x - 1 - i); } else { printf("不是二进制数 "); return 1; } } printf("%d ", sum); return 0; } ``` 说明: 适用于输入任意长度的二进制字符串(需手动验证)。 代码通过位权计算转换为十进制数。 三、其他注意事项 二进制字面量:C99及以上版本支持 `0b` 前缀(如 `unsigned int binary_num = 0b1010;`),但这是直接赋值而非输入。 位操作:若需处理二进制位,可使用位运算符(如 `&`、`|`、`<<`、`>>`)进行操作。 以上方法可根据实际需求选择,输入时需注意格式规范以避免错误。