用C语言实现超长二进制字符串转十进制字符串
时间: 2023-09-22 13:05:06 浏览: 100
以下是一个简单的实现,通过将二进制字符串逐位转换为十进制数字并将其累加,最终得到十进制字符串。
```c
#include <stdio.h>
#include <string.h>
char* binaryToDecimal(char* binary) {
int len = strlen(binary);
int decimal = 0;
// 逐位转换二进制数字为十进制
for (int i = 0; i < len; i++) {
decimal = decimal * 2 + (binary[i] - '0');
}
// 计算十进制字符串位数
int decimalLen = 0;
int temp = decimal;
while (temp > 0) {
temp /= 10;
decimalLen++;
}
// 分配存储十进制字符串的内存
char* decimalStr = (char*) malloc(decimalLen + 1);
sprintf(decimalStr, "%d", decimal); // 将十进制数字转换为字符串
return decimalStr;
}
int main() {
char binary[] = "101011001001010100110101";
char* decimal = binaryToDecimal(binary);
printf("%s\n", decimal);
free(decimal); // 释放内存
return 0;
}
```
输出结果为:
```
2797981
```
阅读全文