
郭老师为您分享以下优质知识
在C语言中输入二进制数主要有以下两种方式:
一、使用 `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`,否则会导致输入错误。
二、通过字符输入后手动转换为二进制数
若输入为二进制字符串(如 `1010`),需逐字符解析并转换为十进制数。例如:
```c
include
include
int main() {
char str;
int n = 0;
printf("请输入32位二进制数: ");
scanf("%s", str);
for(int i = 0; str[i] != '0'; i++) {
if(str[i] == '1' || str[i] == '0') {
n = n * 2 + (str[i] - '0');
} else {
printf("不是二进制数n");
return 1;
}
}
printf("转换后的十进制数为: %dn", n);
return 0;
}
```
说明:此方法适用于输入二进制字符串,需自行验证输入合法性。
补充说明
二进制字面量:C99及以上版本支持直接使用二进制字面量(如 `0b1010`),但这是常量表示法,非输入方式。
其他进制转换:若需将其他进制转换为二进制,可通过位运算或库函数实现,但与输入二进制数无关。
以上方法可根据实际需求选择使用。