
张老师为您分享以下优质知识
在C语言中判断输入的数是否为二进制数,可以通过以下两种方法实现:
一、字符判断法(适用于字符串输入)
通过检查输入的字符串是否仅包含字符'0'和'1'来判断是否为二进制数。
```c
include
include
int isBinary(const char *str) {
while (*str) {
if (*str != '0' && *str != '1') {
return 0; // 包含非二进制字符
}
str++;
}
return 1; // 全部为二进制字符
}
int main() {
char input;
printf("请输入一个二进制数: ");
scanf("%99s", input); // 限制输入长度
if (isBinary(input)) {
printf("是二进制数
");
} else {
printf("不是二进制数
");
}
return 0;
}
```
说明:
1. 使用`scanf`读取输入的字符串,并限制长度以避免缓冲区溢出。
2. `isBinary`函数遍历字符串,检查每个字符是否为'0'或'1'。
3. 根据检查结果输出判断信息。
二、位运算法(适用于整数输入)
利用二进制数的特性(仅一个1)来判断一个整数是否为2的幂,从而间接判断是否为二进制数(纯二进制表示)。
```c
include
int isPowerOfTwo(int num) {
if (num