将任意数制转化为对应的10进制C语言
时间: 2024-10-25 22:11:36 浏览: 13
在C语言中,将任意数制转换为十进制可以借助一些基础数学计算,特别是当涉及到二进制、八进制或十六进制等固定位数的数制时。以下是一个简单的示例,展示如何将一个二进制字符串转换为十进制整数:
```c
#include <stdio.h>
#include <string.h>
// 函数用于将给定的字符数组作为二进制表示转换成十进制整数
int binaryToDecimal(char *binaryString) {
int decimal = 0;
int base = 1; // 从右向左每增加一位,base翻倍
int len = strlen(binaryString);
for (int i = len - 1; i >= 0; i--) {
if (binaryString[i] == '1') {
decimal += base;
}
base *= 2; // 每次迭代,base都要乘以2
}
return decimal;
}
int main() {
char binaryNum[] = "1010"; // 示例二进制数
int decimalNum = binaryToDecimal(binaryNum);
printf("Binary %s is equal to decimal %d\n", binaryNum, decimalNum);
return 0;
}
```
这个函数首先初始化一个decimal变量为0,然后从输入的二进制字符串的末尾开始遍历。如果当前字符是'1',则将对应的权重值(base)加到decimal上,并更新base。最后返回计算出的十进制结果。
阅读全文