用C语言编写二进制转十进制,
时间: 2024-09-19 18:06:26 浏览: 45
在C语言中,将二进制转换成十进制通常通过遍历输入的二进制字符串,并累加每个位上的权重(从右向左,权重每次翻倍)。以下是简单的步骤和代码示例:
1. 首先,定义一个函数`binaryToDecimal`,它接受一个指向二进制字符串的指针作为参数,以及一个整型变量`base`表示当前的位值(初始为1,因为是从最低位开始计数)。
```c
#include <stdio.h>
#include <string.h>
int binaryToDecimal(char* binary) {
int decimal = 0;
int base = 1; // 初始权重为1
for (int i = strlen(binary) - 1; i >= 0; i--) { // 从字符串的末尾开始处理
if (binary[i] == '1') {
decimal += base; // 如果当前位是1,则加上权重
}
base *= 2; // 移到下一位,权重翻倍
}
return decimal;
}
```
2. 然后,在主程序中,你可以调用这个函数,传递二进制字符串给它:
```c
int main() {
char binary[] = "1010"; // 示例二进制数
int decimal = binaryToDecimal(binary);
printf("二进制 %s 转换成十进制是: %d\n", binary, decimal);
return 0;
}
```
运行上述代码,会输出"二进制 1010 转换成十进制是: 10"。
阅读全文