C语言程序 二进制转换十进制
时间: 2024-09-24 08:00:45 浏览: 39
在C语言中,将二进制数转换成十进制数通常通过循环和位运算来实现。这涉及到每一位乘以2的相应次幂,然后累加所有位的结果。以下是一个简单的示例函数,它接受一个表示二进制数的字符串,并返回其对应的十进制值:
```c
#include <stdio.h>
#include <string.h>
int binaryToDecimal(char *binary) {
int decimal = 0;
int base = 1;
int len = strlen(binary);
for (int i = len - 1; i >= 0; i--) {
if (binary[i] == '1') {
decimal += base;
}
base *= 2;
}
return decimal;
}
// 示例用法
int main() {
char binaryNum[] = "1010";
int decValue = binaryToDecimal(binaryNum);
printf("Binary %s is equal to decimal %d\n", binaryNum, decValue);
return 0;
}
```
在这个例子中,`binaryToDecimal` 函数从二进制字符串的最右边开始遍历,每次检测到 '1' 就加上当前 `base` 的值,`base` 随着遍历左移逐次翻倍。这个过程持续到二进制串的开头。
阅读全文