将二进制转化为十进制c语言用字符串输入
时间: 2024-10-21 13:02:15 浏览: 46
在C语言中,将二进制字符串转换成十进制整数通常需要遍历字符串并使用位运算来进行计算。下面是一个简单的示例,展示了如何实现这个过程:
```c
#include <stdio.h>
#include <string.h>
// Function to convert binary string to decimal
int binaryToDecimal(char *binaryStr) {
int len = strlen(binaryStr);
long decimal = 0;
for (int i = 0; i < len; i++) {
if (binaryStr[i] == '1') {
decimal += pow(2, len - 1 - i); // 从最低位开始乘以2的幂次
}
}
return decimal;
}
int main() {
char binary[100];
printf("Enter a binary number: ");
fgets(binary, sizeof(binary), stdin); // Read input with newline character
// Remove the newline character from input
size_t len = strlen(binary);
if (binary[len - 1] == '\n') {
binary[len - 1] = '\0'; // Replace newline with null terminator
} else {
printf("Invalid input! Please enter only a binary number.\n");
return 1;
}
int decimalValue = binaryToDecimal(binary);
printf("The decimal equivalent is: %d\n", decimalValue);
return 0;
}
```
在这个程序中,用户输入一个以字符串形式表示的二进制数字,然后`binaryToDecimal`函数会逐位将其转换为十进制数。
阅读全文