用c语言利用数组实现二进制数转化为十进制数
时间: 2024-11-25 16:33:15 浏览: 28
在C语言中,我们可以创建一个数组来存储二进制数,然后遍历数组从最低位开始逐位转换成十进制数。下面是一个简单的实现步骤:
```c
#include <stdio.h>
#include <string.h>
// 将二进制字符串转为十进制整数
int binaryToDecimal(char* binaryString) {
int decimalValue = 0;
int base = 1; // 二进制每位对应的权重
int len = strlen(binaryString); // 获取字符串长度
for (int i = len - 1; i >= 0; i--) {
if (binaryString[i] == '1') {
decimalValue += base;
}
base *= 2; // 移位到下一位
}
return decimalValue;
}
int main() {
char binary[50];
printf("请输入一个二进制数(以0开头): ");
fgets(binary, sizeof(binary), stdin); // 读取用户输入直到换行符
binary[strlen(binary) - 1] = '\0'; // 去除fgets添加的换行符
int decimal = binaryToDecimal(binary);
printf("二进制数 %s 转换成十进制数为:%d\n", binary, decimal);
return 0;
}
```
在这个程序中,我们首先从用户那里获取一个二进制字符串,然后通过`binaryToDecimal`函数将其每一位乘以相应的权重(2的幂),累加得到十进制值。
阅读全文