帮我用C语言for循环写一个将二进制转换为十进制的函数,功能是当输入一个二进制数是能将十进制的数打印出来
时间: 2024-10-14 19:11:26 浏览: 35
C语言实现二进制数据转换为十进制数据
当你想要用C语言编写一个函数,将给定的二进制数转换为十进制并打印结果,可以创建一个名为`binary_to_decimal`的函数。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int binary_to_decimal(char *binary);
// 主函数
int main() {
char binary[50]; // 存储二进制字符串
printf("请输入一个二进制数(以0开头): ");
scanf("%s", binary); // 输入二进制数
// 确保输入的是有效的二进制数
if (strlen(binary) > 1 && binary[0] != '1') {
printf("无效的二进制数!\n");
return 1;
}
int decimal = binary_to_decimal(binary);
if (decimal >= 0) {
printf("对应的十进制数是: %d\n", decimal);
} else {
printf("无法转换为十进制。\n");
}
return 0;
}
// 转换函数
int binary_to_decimal(char *binary) {
int decimal = 0;
int base = 1;
for (int i = strlen(binary) - 1; i >= 0; i--) {
if (binary[i] == '1') {
decimal += base;
}
base *= 2;
}
return decimal;
}
```
这个程序首先读取用户输入的二进制数,然后通过`binary_to_decimal`函数将其转换为十进制。函数从二进制的最低位开始遍历,每次乘以2的相应次幂,并在遇到'1'时累加到结果。
阅读全文