
周老师为您分享以下优质知识
在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
include
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...`)适合静态赋值。
字符串转换:适用于输入非固定长度的二进制字符串。