在C语言中输入二进制数主要有以下三种方式,具体使用场景和实现方法如下:
一、使用 `scanf` 函数输入二进制数(推荐)
通过 `scanf` 函数的 `%b` 或 `%B` 格式说明符,可以直接输入二进制数。例如:
```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`,其他字符会被视为错误输入。
二、通过二进制字面量赋值
C99及以上版本支持直接使用二进制字面量(以 `0b` 或 `0B` 开头)赋值给整数变量。例如:
```c
int main() {
int a = 0b1010; // 十进制10
int b = 0b0110; // 十进制6
printf("a: %d, b: %dn", a, b);
return 0;
}
```
优势:语法简洁,可直接在代码中定义二进制数。
三、从字符串转换二进制数
若输入为二进制字符串(如 `1010`),需手动解析并转换为整数。例如:
```c
include include int main() { char str; printf("Enter a binary string: "); scanf("%s", str); int n = 0; for(int i = 0; str[i] != '0'; i++) { if(str[i] == '1' || str[i] == '0') { n = n * 2 + (str[i] - '0'); } else { printf("Not a binary numbern"); return 1; } } printf("Decimal value: %dn", n); return 0; } ``` 说明:逐位检查字符串是否为二进制字符,并转换为十进制数。
总结
直接输入:使用 `scanf("%b", ...)` 适合快速输入二进制数。
代码内定义:使用二进制字面量(`0b...`)适合静态赋值。
字符串转换:适用于输入非固定长度的二进制字符串。